Submission #370956

#TimeUsernameProblemLanguageResultExecution timeMemory
370956KoDAncient Books (IOI17_books)C++17
0 / 100
1 ms492 KiB
#include <bits/stdc++.h>
#include "books.h"

template <class T>
using Vec = std::vector<T>;

long long minimum_walk(Vec<int> p, int s) {
	assert(s == 0);
	const int n = (int) p.size();
	Vec<bool> done(n);
	long long ret = 0;
	int max = 0;
	for (int i = 0; i < n; ++i) {
		ret += std::abs(p[i] - i);
		if (!done[i]) {
			max = std::max(max, i);
			int u = i;
			while (!done[u]) {
				done[u] = true;
				u = p[u];
			}
		}
	}
	return ret + 2 * max;
}
#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...