Runtime error using g++ 20 but accepted using g++ 17

Правка en1, от Bourbon_Man, 2024-01-07 13:18:34

Can someone help me understand why this code works for g++ 17 but not on g++ 20? ~~~~~ //......

include <bits/stdc++.h>

using namespace std;

define int long long

define ra(a) a.begin(),a.end()

define endl "\n"

define pb push_back

define no cout<<"No"<<endl

define No cout<<"NO"<<endl

define yes cout<<"Yes"<<endl

define Yes cout<<"YES"<<endl

define mod 1000000007

define inf LLONG_MAX

define what_is(x) cout<<#x<<": "<<x<<endl;

vectorlvl; map<int,int>val;

bool cmp(int a, int b) { return lvl[a]>lvl[b]; }

int dfs(vectorT[], int v, int p) { for(int c:T[v]){ if(c==p) continue; dfs(T, c, v); lvl[v] = max(lvl[v], lvl[c]); } sort(ra(T[v]), cmp); lvl[v]++; }

void allot(vectorT[], int v, int p, int& cur) { if(v&&T[v].size()==1){ val[v] = cur++; } for(int c:T[v]){ if(c==p) continue; allot(T, c, v, cur); } }

int visit_tree(vectorT[], vector& seq, int v, int p) { int mn = inf; // what_is(v); // what_is(val[v]); if(val[v]) mn = val[v]; for(int c:T[v]){ if(c==p) continue; mn = min(mn, visit_tree(T, seq, c, v)); } seq.pb(mn); return mn; }

int lis(vector const& a) { int n = a.size(); const int INF = 1e9; vector d(n+1, INF); d[0] = -INF;

for (int i = 0; i < n; i++) {
    int l = upper_bound(d.begin(), d.end(), a[i]) - d.begin();
    if (d[l-1] <= a[i] && a[i] < d[l])
        d[l] = a[i];
}

int ans = 0;
for (int l = 0; l <= n; l++) {
    if (d[l] < INF)
        ans = l;
}
return ans;

}

void solve() { int n;cin>>n; vectorT[n]; for(int i=1;i<n;i++){ int x;cin>>x; x--; T[i].pb(x); T[x].pb(i); }

lvl.resize(n,0);
dfs(T, 0, -1);

val.clear();
int cur = 1;
allot(T, 0, -1, cur);

vector<int>seq;
visit_tree(T, seq, 0, -1);

// for(int x:seq) cout<<x<<" "; cout<<endl;
cout<<lis(seq)<<endl;

}

signed main() { ios_base::sync_with_stdio(0);cin.tie(0); int t=1; // cin>>t; for(int i=0;i<t;i++){ // cout<<"Case #"<<i+1<<": \n"; solve(); } } /*

*/ ~~~~~

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en2 Английский Bourbon_Man 2024-01-07 13:19:54 2257
en1 Английский Bourbon_Man 2024-01-07 13:18:34 2401 Initial revision (published)