Submission #132655

#TimeUsernameProblemLanguageResultExecution timeMemory
132655MoNsTeR_CuBeAncient Books (IOI17_books)C++17
0 / 100
2 ms380 KiB
#include <bits/stdc++.h>
#include "books.h"
using namespace std;

long long minimum_walk(std::vector<int> p, int s) {
	#define int long long 
	int l = 0, r = p.size()-1;
	int maxi = -1;
	int ans = 0;
	
	for(int i = 0; i < (int)p.size(); i++){
		l = i;
		if(p[i] != i){
			break;
		}
	}
	
	for(int i = (int)p.size()-1; i >= 0; i--){
		r = i;
		if(p[i] != i){
			break;
		}
	}
	
	if(l >= r) return 0;
	
	for(int i = l; i <= r; i++){
		if(i >= maxi){
			ans += 2;
		}
		if(p[i] != i){
			ans += abs(p[i]-i);
			maxi = max(maxi, (int)p[i]);
		}
	}
	
	return ans + 2*l;
	#undef int
}
 
#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...