Submission #43629

#TimeUsernameProblemLanguageResultExecution timeMemory
43629faustaadpAncient Books (IOI17_books)C++14
0 / 100
2 ms532 KiB
#include<bits/stdc++.h> #define ll long long #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; #include "books.h" ll n,i,nx[101010],has,tam,kan[101010]; ll b[101010],ma; void dfs(ll aa) { ma=max(ma,aa); b[aa]=1; if(!b[nx[aa]]) dfs(nx[aa]); has+=abs(aa-nx[aa]); } void dfs2(ll aa) { b[aa]=2; if(b[nx[aa]]!=2) dfs2(nx[aa]); kan[aa]=ma; } long long minimum_walk(std::vector<int> p, int s) { n=p.size(); for(i=0;i<n;i++) { if(p[i]==i) b[i]=1; else nx[i]=p[i]; } for(i=0;i<n;i++) { if(!b[i]) { ma=0; dfs(i); dfs2(i); } } ll hv=0; for(i=0;i<n;i++) { if(i>hv) has+=2; hv=max(kan[i],hv); } return has; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...