Submission #775898

#TimeUsernameProblemLanguageResultExecution timeMemory
775898ttamxAncient Books (IOI17_books)C++14
12 / 100
0 ms212 KiB
#include "books.h"
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N=1e6+5;

struct fenwick{
	ll t[N];
	void add(int i,ll v){
		while(i<N)t[i]+=v,i+=i&-i;
	}
	ll read(int i){
		ll res=0;
		while(i>0)res+=t[i],i-=i&-i;
		return res;
	}
}f;

long long minimum_walk(vector<int> p, int s){
	int n=p.size();
	ll ans=0;
	int pos=s;
	for(int i=0;i<n;i++){
		int cur=p[i];
		if(cur==i)continue;
		while(cur!=i){
			ans+=abs(cur-pos);
			pos=cur;
			swap(cur,p[cur]);
		}
		ans+=abs(pos-i);
		pos=i;

	}
	ans+=abs(pos-s);
	return min(2ll*n,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...