Submission #412946

#TimeUsernameProblemLanguageResultExecution timeMemory
412946Pichon5Ancient Books (IOI17_books)C++17
12 / 100
1 ms292 KiB
#include<bits/stdc++.h>
#define ll long long int
#define pb push_back
#define vi vector<int>
using namespace std;


ll minimum_walk(vector<int> p,int s){
   ll res=0;
   int n=p.size();
   vi cant(n+2,0);
   for(int i=0;i<n;i++){
      if(p[i]==i)continue;
      res+=abs(i-p[i]);
      int mi=min(i,p[i]);
      int ma=max(i,p[i]);
      cant[mi]++;
      cant[ma+1]--;
   }  
   
   int sum=0;
   int acum=0;
   for(int i=0;i<n;i++){
      acum+=cant[i];
      if(acum==0){
         sum++;
      }else{
         res+=2*sum;
         sum=0;        
      }
   }
   return res;   
}
#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...