Submission #423047

#TimeUsernameProblemLanguageResultExecution timeMemory
423047MDarioAncient Books (IOI17_books)C++11
12 / 100
1 ms204 KiB
#include "books.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define F first
#define S second
long long minimum_walk(vector<int> p, int s){
    ll n=p.size(), r=0, x=0, y=0, z=0;
    bool b[n];
    for(int i=0; i<n; i++){
        b[i]=0;
        if(p[i]==i)b[i]=1;
    }
    for(int i=0; i<n; i++){
        if(!b[i]){
            //cout << z << " ";
            if(i>z){
                r+=2*(i-x);
                x=i;
            }
            r+=p[i]-i;
            y=p[i];
            while(y!=i){
                z=max(z, y);
                b[y]=1;
                r+=abs(p[y]-y);
                y=p[y];
            }
            b[y]=1;
            z=max(z, y);
        }
    }
	return r;
}
#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...