Submission #1053535

#TimeUsernameProblemLanguageResultExecution timeMemory
1053535UnforgettableplAncient Books (IOI17_books)C++17
0 / 100
2011 ms344 KiB
#include "books.h"
#include <bits/stdc++.h>
using namespace std;

long long minimum_walk(vector<int> p, int s) {
	int n = p.size();
	vector<int> res(n,-1);
	for(int i=0;i<n;i++)res[p[i]]=i;
	long long ans = 1e10;
	vector<int> moves(n);iota(moves.begin(),moves.end(),0);
	moves.emplace_back(0);
	if(moves==p)return 0ll;
	do {
		long long t = 0;
		vector<int> curr(n);iota(curr.begin(), curr.end(),0);
		int currhand = -1;
		int currpos = 0;
		for(int i=0;i<=n;i++) {
			t+=abs(moves[i]-currpos);
			currpos=moves[i];
			swap(currhand,curr[currpos]);
			if(curr==res) {
				ans = min(ans,t);
				break;
			}
		}
	} while (next_permutation(moves.begin(), moves.end()-1));
	return ans;
}
#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...