Submission #605624

#TimeUsernameProblemLanguageResultExecution timeMemory
605624dnassAncient Books (IOI17_books)C++17
0 / 100
1 ms340 KiB
#include "books.h" #include <bits/stdc++.h> using namespace std; typedef long long int lld; lld n; lld minimum_walk(vector<int> p, int s){ n = (lld) p.size(); lld ans = 0; for(lld i=0;i<n;i++) ans+=abs(p[i]-i); vector<bool> vis(n, false); vector<vector<lld>> cycles; lld mx = -1; for(lld i=0;i<n;i++){ if(!vis[i]){ vector<lld> tmp; lld x = i; while(true){ if(vis[x]) break; tmp.push_back(x); vis[x] = true; x = p[x]; } sort(tmp.begin(), tmp.end()); mx = max(mx, tmp[0]); cycles.push_back(tmp); } } return ans+2*mx; }
#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...