Submission #1301762

#TimeUsernameProblemLanguageResultExecution timeMemory
1301762keremThe Potion of Great Power (CEOI20_potion)C++20
Compilation error
0 ms0 KiB
#pragma GCC optimize("-fipa-sra,-fgcse-lm,-fgcse,inline,unroll-all-loops,no-stack-protector,O3,fast-math,Ofast") #include <bits/stdc++.h> using namespace std; //~ #define int long long #define pb push_back #define emb emplace_back #define fr first #define sc second #define all(x) x.begin(),x.end() #define sp << " " << #define N 1000 #define inf 1e9 typedef pair<int,int> ii; typedef tuple<int,int,int> iii; struct Node{ int l,r; Node(){l=r=0;} Node(int ll,int rr){l=ll;r=rr;} }; int sz=0; vector<Node> tree; vector<vector<int>> t,v; vector<int> h,ind; vector<ii> trust; int newNode(int l=0,int r=0){ tree.emb(l,r); return sz++; } inline int update(int node,int l,int r,int qx){ if(l==r){ if(node) return 0; node=newNode(); return node; } int mid=(l+r)/2; if(qx<=mid){ int newL=update(tree[node].l,l,mid,qx); if(!newL && !tree[node].r) return 0; else return newNode(newL,tree[node].r); } else{ int newR=update(tree[node].r,mid+1,r,qx); if(!tree[node].l && !newR) return 0; else return newNode(tree[node].l,newR); } } inline void query(int node1,int node2,int l,int r){ if(!node1 && !node2) return; if(l==r){ if(node1) trust.pb({h[l],1}); if(node2) trust.pb({h[l],2}); return; } int mid=(l+r)/2; query(tree[node1].l,tree[node2].l,l,mid); query(tree[node1].r,tree[node2].r,mid+1,r); } void solve(){ newNode(); int n,D,m,q; cin >> n >> D >> m >> q; vector<ii> zort; h.assign(n,0);ind.assign(n,0); for(int i=0;i<n;i++){ cin >> h[i]; zort.emb(h[i],i); } sort(all(h)); sort(all(zort)); for(int i=0;i<n;i++) ind[zort[i].sc]=i; t.assign(n,vector<int>(1,0)); v.assign(n,vector<int>(1,0)); for(int i=1;i<=m;i++){ int x,y;cin >> x >> y; x=ind[x];y=ind[y]; t[x].pb(i);t[y].pb(i); v[x].pb(update(v[x].back(),0,n-1,y)); v[y].pb(update(v[y].back(),0,n-1,x)); } while(q--){ int x,y,T; cin >> x >> y >> T; x=ind[x];y=ind[y]; int itl=upper_bound(all(t[x]),T)-t[x].begin()-1; int itr=upper_bound(all(t[y]),T)-t[y].begin()-1; trust.clear(); query(v[x][itl],v[y][itr],0,n-1); int ans=inf; for(int i=1;i<(int)trust.size();i++){ if(trust[i].sc!=trust[i-1].sc) ans=min(ans,trust[i].fr-trust[i-1].fr); } cout << ans << endl; } } int32_t main(){ cout << fixed << setprecision(0); ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); int test=1; //~ cin >> test; while(test--){ solve(); } }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccnbgt6t.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc5NiPuI.o:potion.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccnbgt6t.o: in function `main':
grader.cpp:(.text.startup+0xe4): undefined reference to `init(int, int, int*)'
/usr/bin/ld: grader.cpp:(.text.startup+0x16f): undefined reference to `curseChanges(int, int*, int*)'
/usr/bin/ld: grader.cpp:(.text.startup+0x1cf): undefined reference to `question(int, int, int)'
collect2: error: ld returned 1 exit status