Submission #1155074

#TimeUsernameProblemLanguageResultExecution timeMemory
1155074Math4Life2020Island Hopping (JOI24_island)C++20
Compilation error
0 ms0 KiB
#include "island.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<ll,ll>;f map<pii,ll> LOG; ll QRY(ll v, ll k) { if (LOG.find({v,k})==LOG.end()) { LOG[{v,k}]=query(v+1,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; } 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,2)-1; ll a2 = QRY(f1[i],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 (f1[f1[i]]==i && T==2) { continue; } if (!frz[i]) { ll j = QRY(i,T)-1; 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; } } } } assert(cedg.size()>=(2*(N-1))); }

Compilation message (stderr)

island.cpp:4:47: error: 'f' does not name a type
    4 | using ll = long long; using pii = pair<ll,ll>;f
      |                                               ^
island.cpp: In function 'll QRY(ll, ll)':
island.cpp:9:9: error: 'LOG' was not declared in this scope
    9 |     if (LOG.find({v,k})==LOG.end()) {
      |         ^~~
island.cpp:12:12: error: 'LOG' was not declared in this scope
   12 |     return LOG[{v,k}];
      |            ^~~