Submission #705780

#TimeUsernameProblemLanguageResultExecution timeMemory
705780Abrar_Al_SamitAncient Books (IOI17_books)C++17
0 / 100
1 ms1236 KiB
#include <bits/stdc++.h> using namespace std; const int nax = 1e6; bool vis[nax]; int n; long long minimum_walk(vector<int>p, int s) { long long ans = 0; n = p.size(); for(int i=0; i<n; ++i) { if(vis[i]) continue; if(i==p[i]) continue; int j = i; while(1) { if(vis[j]) break; vis[j] = 1; ans += abs(j-p[j]); j = p[j]; } } int fur = -1; int cnt = 0; memset(vis, 0, sizeof vis); for(int i=0; i<n; ++i) if(!vis[i]) { if(i>fur) { ++cnt; } int j = i; while(1) { if(vis[j]) break; vis[j] = true; fur = max(j, fur); j = p[j]; } } ans += (cnt-1) * 2; return ans; }
#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...