Submission #705389

#TimeUsernameProblemLanguageResultExecution timeMemory
705389Abrar_Al_SamitAncient Books (IOI17_books)C++17
0 / 100
1 ms308 KiB
#include <bits/stdc++.h>
using namespace std;

const int nax = 1e6;
bool vis[nax];
int n;
long long minimum_walk(vector<int>p, int s) {
	long long ans = 0;
	n = p.size();

	int lst = 0;
	for(int i=0; i<n; ++i) {
		if(vis[i]) continue;
		if(i==p[i]) continue;

		ans += i-lst;
		lst = i;
		int j = i;
		while(1) {
			ans += abs(j-p[j]);
			vis[j] = 1;
			j = p[j];
			if(j==i) break;
		}
	}
	ans += lst;
	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...