Submission #51506

#TimeUsernameProblemLanguageResultExecution timeMemory
51506aome고대 책들 (IOI17_books)C++17
0 / 100
3 ms752 KiB
#include <bits/stdc++.h>
#include "books.h"

using namespace std;

const int N = 1000005;

bool visit[N];

long long minimum_walk(vector<int> p, int s) {
	assert(s == 0);
	int n = p.size();
	int cur = 0;
	long long sum = 0;
	for (int i = 0; i < n; ++i) sum += abs(p[i] - i);
	while (1) {
		queue<int> qu;
		visit[cur] = 1, qu.push(cur);

		while (qu.size()) {
			int u = qu.front(); qu.pop();
			while (cur < p[u]) {
				cur++, visit[cur] = 1, qu.push(cur);
			}
		}

		if (cur == n - 1) break;
		sum += 2, cur++;
	}
	return sum;
}
#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...