Submission #790584

#TimeUsernameProblemLanguageResultExecution timeMemory
790584FEDIKUSComparing Plants (IOI20_plants)C++17
Compilation error
0 ms0 KiB
#include "books.h" #include<bits/stdc++.h> using ll = long long; using namespace std; const int maxn=1e6+10; int n; int mini[maxn]; int maxi[maxn]; bool bio[maxn]; int dsu[maxn],siz[maxn]; int cale(int a){return a==dsu[a] ? a:cale(dsu[a]);} void join(int a,int b){ a=cale(a); b=cale(b); if(a==b) return; if(siz[a]<siz[b]) swap(a,b); dsu[b]=a; siz[a]+=siz[b]; maxi[a]=max(maxi[a],maxi[b]); mini[a]=min(mini[a],mini[b]); } void init(){ for(int i=0;i<n;i++){dsu[i]=i; siz[i]=1; maxi[i]=i; mini[i]=i;} } ll minimum_walk(vector<int> p, int s) { n=p.size(); init(); ll ret=0; int imal=n,imar=-1; for(int i=0;i<n;i++){ if(p[i]!=i) imal=min(imal,i); if(p[i]!=i) imar=i; ret+=abs(p[i]-i); if(bio[i]) continue; int tren=i; while(!bio[tren]){ bio[tren]=true; join(tren,p[tren]); tren=p[tren]; } } imal=min(imal,s); imar=max(imar,s); int l=s,r=s; int tl=mini[cale(s)],tr=maxi[cale(s)]; int dodaol=0,dodaor=0; while(l!=imal || r!=imar){ bool pl=false,pr=false; if(l!=tl || r!=tr){ if(l!=tl){ l--; tl=min(tl,mini[cale(l)]); tr=max(tr,maxi[cale(l)]); } if(r!=tr){ r++; tl=min(tl,mini[cale(r)]); tr=max(tr,maxi[cale(r)]); } continue; } if(l>imal && maxi[cale(l-1)]<=r){ pl=true; l--; if(l<tl){ ret+=2; dodaol++; } tl=min(tl,mini[cale(l)]); continue; } if(r<imar && mini[cale(r+1)]>=l){ pr=true; r++; if(r>tr){ ret+=2; dodaor++; } tr=max(tr,maxi[cale(r)]); continue; } if(pl || pr) continue; ret-=2*max(dodaol,dodaor); ret+=2; l--; tl=min(tl,mini[cale(l)]); tr=max(tr,maxi[cale(l)]); dodaol=0; dodaor=0; } return ret; }

Compilation message (stderr)

plants.cpp:1:10: fatal error: books.h: No such file or directory
    1 | #include "books.h"
      |          ^~~~~~~~~
compilation terminated.