Submission #1048554

#TimeUsernameProblemLanguageResultExecution timeMemory
1048554pccAncient Books (IOI17_books)C++17
50 / 100
78 ms15956 KiB
#include "books.h" #include <bits/stdc++.h> using namespace std; #define ll long long const int mxn = 1e6+10; int N; int l[mxn],r[mxn]; long long minimum_walk(std::vector<int> p, int s) { ll ans = 0; N = p.size(); for(int i = 0;i<N;i++){ if(p[i] == i)continue; int a = i,b = p[i]; if(a<b){ l[a]++; l[b]--; } else{ r[b]++; r[a]--; } } for(int i = 1;i<N;i++){ l[i] += l[i-1]; r[i] += r[i-1]; } int lp = s,rp = s-1; for(int i = s;i+1<N;i++){ if(max(l[i],r[i]) != 0)rp = i; } for(int i = s-1;i>=0;i--){ if(max(l[i],r[i]) != 0)lp = i; } for(int i = lp;i<=rp;i++){ ans += max({l[i],r[i],1})<<1; } 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...