Submission #289248

#TimeUsernameProblemLanguageResultExecution timeMemory
289248eohomegrownappsAncient Books (IOI17_books)C++14
0 / 100
1 ms384 KiB
#include "books.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int ptr = 0;
vector<int> cycle;
vector<int> p;
int n;

ll total = 0;

void findcycle(int i){
	total += abs(i-p[i]);
	cycle[i] = ptr;
	if (cycle[p[i]]!=-1){return;}
	findcycle(p[i]);
}

ll minimum_walk(std::vector<int> px, int s) {
	p = px;
	n = p.size();
	cycle.resize(n,-1);
	int minind = -1;
	for (int i = 0; i<n; i++){
		if (cycle[i]!=-1){continue;}
		minind=i;
		findcycle(i);
		ptr++;
	}
	return total+2*minind;
}
#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...