Submission #1155042

#TimeUsernameProblemLanguageResultExecution timeMemory
1155042Math4Life2020Island Hopping (JOI24_island)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<ll,ll>; map<pii,ll> LOG; ll QRY(ll v, ll k) { if (LOG.find({v,k})==LOG.end()) { LOG[{v,k}]=query(v,k); } return LOG[{v,k}]; } const ll Nm = 305; ll f[Nm]; ll getf(ll x) { if (f[x]==x) { return x; } return f[x]=getf(f[x]); } void fz(ll a, ll b) { a = getf(a); b = getf(b); if (a!=b) { f[a]=b; } } set<pii> cedg; void ANS(ll x, ll y) { if (cedg.find({x,y})!=cedg.end()) { return; } cedg.insert({x,y}); cedg.insert({y,x}); answer(x+1,y+1); fz(x,y); } void solve(int N, int L) { ll f1[N]; for (ll i=0;i<N;i++) { f1[i]=QRY(i+1,1)-1; } vector<bool> frz(N,false); //frozen? for (ll i=0;i<N;i++) { if (f1[i]<i && f1[f1[i]]!=i) { ANS(i,f1[i]); } else if (f1[i]<i && f1[f1[i]]==i) { ANS(i,f1[i]); ll a1 = QRY(i+1,2)-1; ll a2 = QRY(f1[i]+1,2)-1; if (a1==a2) { assert(a1>f1[i]); if (a1<i) { frz[f1[i]]=1; ANS(i,a1); } else { frz[i]=1; frz[f1[i]]=1; } } } else if (f1[i]>i && f1[f1[i]]!=i) { ANS(f1[i],i); frz[i]=1; } } for (ll T=2;T<N;T++) { for (ll i=(N-1);i>=0;i--) { if (!frz[i]) { ll j = QRY(i,T); if (j<i) { if (cedg.find({i,j})==cedg.end()) { if (getf(i)==getf(j)) { frz[i]=1; } else { ANS(i,j); } } } else { if (cedg.find({i,j})==cedg.end()) { if (getf(i)==getf(j)) { frz[i]=1; } else { ANS(i,j); } } frz[i]=1; } } } } }

Compilation message (stderr)

island.cpp: In function 'll QRY(ll, ll)':
island.cpp:10:20: error: 'query' was not declared in this scope
   10 |         LOG[{v,k}]=query(v,k);
      |                    ^~~~~
island.cpp: In function 'void ANS(ll, ll)':
island.cpp:40:5: error: 'answer' was not declared in this scope
   40 |     answer(x+1,y+1);
      |     ^~~~~~