Submission #892421

#TimeUsernameProblemLanguageResultExecution timeMemory
892421abcvuitunggioAncient Books (IOI17_books)C++17
12 / 100
6 ms25432 KiB
#include "books.h" #include <bits/stdc++.h> using namespace std; int vis[1000001]; vector <pair <int, pair <int, int>>> e; vector <int> ve[1000001]; long long minimum_walk(vector <int> p, int s){ int x=0,n=p.size(); long long d=0; for (int i=0;i<n;i++){ if (!vis[i]){ int x=i; while (true){ vis[x]=1; ve[i].push_back(x); d+=abs(x-p[x]); x=p[x]; if (x==i) break; } } } vector <pair <int, int>> tmp; for (int i=0;i<n;i++){ if (ve[i].empty()||(ve[i].size()==1&&i!=s)) continue; sort(ve[i].begin(),ve[i].end()); tmp.push_back({ve[i][0],ve[i].back()}); } sort(tmp.begin(),tmp.end()); int cur=0; for (auto [l,r]:tmp){ x+=max(l-cur,0); cur=r; } return x*2+d; }
#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...