Submission #596674

#TimeUsernameProblemLanguageResultExecution timeMemory
596674farhan132Ancient Books (IOI17_books)C++17
50 / 100
163 ms22760 KiB
#include "books.h"
#include <bits/stdc++.h>
 
using namespace std;
 
typedef long long ll;
typedef pair<ll , ll> ii;
 
#define ff first
#define ss second
#define pb push_back
#define in insert

long long minimum_walk(std::vector<int> p, int s) {

	 ll n = p.size();

	 vector < ll > vis(n, 0);
	 ll ans = 0; ll r = 0;
	 ll mx = 0;
	 while(n > 0 && p[n-1] == n-1){
	 	n--;
	 }
	 if(n == 0) return 0;
	 for(ll i = 0; i < n; i++){
	 	if(vis[i]) continue;
	 	ll c = i; 
	 	ll _mx = 0;
	 	while(!vis[c]){
	 		vis[c] = 1;
	 		_mx = max(_mx, c);
	 		ans += abs(p[c] - c); c = p[c];
	 	}
	 	if(mx < i) r++;
	 	mx = max(mx, _mx);
	 }
	 ans += 2*r;

	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...