제출 #1316687

#제출 시각아이디문제언어결과실행 시간메모리
1316687Luvidi고대 책들 (IOI17_books)C++20
12 / 100
0 ms332 KiB
#include "books.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long

long long minimum_walk(std::vector<int> p, int s) {
	int n=p.size();
	bool vs[n];
	memset(vs,0,sizeof(vs));
	ll ans=0,mx=0,r=-1;
	for(int i=0;i<n;i++)if(!vs[i]&&i!=p[i]){
		int t=p[i],z=i;
		ans+=abs(i-p[i]);
		while(t!=i){
			z=max(z,t);
			ans+=abs(t-p[t]);
			vs[t]=1;
			t=p[t];
		}
		if(r<i){
			mx=i;
		}
		r=z;
	}
	ans+=2*mx;
	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...