Submission #116322

#TimeUsernameProblemLanguageResultExecution timeMemory
116322user202729Ancient Books (IOI17_books)C++17
0 / 100
2 ms512 KiB
#include "books.h" #include<vector> #include<cstdlib> #include<climits> long long minimum_walk(std::vector<int> p, int s) { if(s!=0)return -1; std::vector<char> vs(p.size()); int max_cr=0; long long sbookmove=0; for(int i=p.size();i--;){ sbookmove+=std::abs(i-p[i]); if(vs[i])continue; int cr=INT_MAX; // closest to the right of s for(int j=i;;){ vs[j]=true; cr=std::min(cr,j); j=p[j]; if(j==i)break; } if(p[i]!=i) max_cr=std::max(max_cr,cr); } return sbookmove+2*max_cr; }
#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...