Submission #584533

#TimeUsernameProblemLanguageResultExecution timeMemory
584533PiejanVDCAncient Books (IOI17_books)C++17
0 / 100
1 ms468 KiB
#include <bits/stdc++.h> #include "books.h" using namespace std; long long minimum_walk(vector<int>p, int s) { int n = p.size(); vector<int>v(n); for(int i = 0 ; i < n ; i++) v[i] = i; int last = 0; long long ans = 0; for(int i = 0 ; i < n ; i++) { if(i != p[v[i]]) { last = i; int pos = i; int save = v[i]; do { int nx = p[save]; ans += abs(nx - pos); swap(save, v[p[save]]); pos = nx; } while(pos != i); } } for(int i = 0 ; i < n ; i++) assert(v[i] == p[i]); ans += 2*last; 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...