Submission #1155807

#TimeUsernameProblemLanguageResultExecution timeMemory
1155807alexddAncient Books (IOI17_books)C++20
50 / 100
75 ms19952 KiB
#include "books.h" #include<bits/stdc++.h> using namespace std; int n; int p[1000005]; int maxpref[1000005],minsuff[1000005]; long long minimum_walk(std::vector<int> cit_p, int s) { s++; n = cit_p.size(); for(int i=1;i<=n;i++) p[i] = cit_p[i-1]+1; int ult=0,primu=n+1; long long rez=0; for(int i=1;i<=n;i++) { maxpref[i] = max(maxpref[i-1], p[i]); if(p[i]!=i) { ult=i; primu = min(primu, i); } rez += abs(p[i]-i); } minsuff[n+1] = n+1; for(int i=n;i>0;i--) minsuff[i] = min(minsuff[i+1], p[i]); if(ult==0) return 0; ult = max(ult, s); primu = min(primu, s); for(int i=primu+1;i<=ult;i++) { if(maxpref[i-1]<i && minsuff[i]>=i) rez+=2; } return rez; }
#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...