제출 #1199082

#제출 시각아이디문제언어결과실행 시간메모리
1199082dosts고대 책들 (IOI17_books)C++20
0 / 100
0 ms324 KiB
#include "books.h"
#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int> 
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " << 
#define all(x) x.begin(),x.end()
using namespace std;

int minimum_walk(std::vector<int32_t> p, int32_t s) {
	assert(s == 0);
	int cur = 0;
	int n = p.size();
	int walk = 0;
	vi done(n,0);
	set<int> mex;
	for (int i = 0;i<n;i++) mex.insert(i);
	while (!mex.empty()) {
		int i = *mex.begin();
		mex.erase(mex.begin());
		walk+=abs(cur-i);
		cur = i;
		int f = cur;
		while (p[f] != cur) {
			mex.erase(f);
			walk+=abs(f-p[f]);
			f = p[f];
		}
		mex.erase(f);
		walk+=abs(i-f);
	}
	walk+=cur;
	return walk;
}
#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...