제출 #51509

#제출 시각아이디문제언어결과실행 시간메모리
51509aome고대 책들 (IOI17_books)C++17
50 / 100
224 ms20616 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;
	int lim = 0;
	for (int i = 0; i < n; ++i) {
		sum += abs(p[i] - i);
		visit[i] = 0;
		if (i != p[i]) lim = 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 == lim) 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...