Submission #1204864

#TimeUsernameProblemLanguageResultExecution timeMemory
1204864Captain_GeorgiaAncient Books (IOI17_books)C++20
0 / 100
0 ms328 KiB
#include "books.h"

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

long long minimum_walk (vector<int> p, int s) {
	int cnt = 0, N = p.size();
	vector<int> used(N, 0);
	long long res = 0;
	for (int i = 0;i < N;i ++) {
		if (used[i] == 0) {
			if (cnt <= 0 && i > 0) res += 2;
			if (p[i] != i) cnt --;
			int node = i;
			while (p[node] != i) {
				used[node] = 1;
				cnt ++;
				res += abs(node - p[node]);
				node = p[node];
			}
			res += abs(node - p[node]);
			used[node] = 1;
		} else {
			cnt --;
		}
	}
	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...