Submission #335695

#TimeUsernameProblemLanguageResultExecution timeMemory
335695couplefireAncient Books (IOI17_books)C++17
0 / 100
1 ms492 KiB
#include "books.h" #include <bits/stdc++.h> using namespace std; long long minimum_walk(vector<int> p, int s) { int n = p.size(); vector<bool> visited(n, 0); vector<vector<int>> cycles; long long ans = 0; for(int i = 0; i<n; i++) ans += abs(p[i]-i); for(int i = 0; i<n; i++){ if(visited[i]) continue; cycles.push_back({}); int j = i; while(!visited[j]){ visited[j] = 1; cycles.back().push_back(j); j = p[j]; } } int leftMost = 0; for(auto x : cycles){ int mi = n; for(auto y : x) mi = min(mi, y); leftMost = max(leftMost, mi); } return ans+2ll*leftMost; }
#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...