Submission #615924

#TimeUsernameProblemLanguageResultExecution timeMemory
615924MohamedAhmed04Ancient Books (IOI17_books)C++14
0 / 100
1 ms308 KiB
#include "books.h"
#include <bits/stdc++.h>

using namespace std ;

const int MAX = 1e6 + 10 ;

int mark[MAX] ;

int n ;

long long minimum_walk(std::vector<int> p, int s) 
{
	n = p.size() ; 
	long long ans = 0 , last = 0 ;
	for(int i = 0 ; i < n ; ++i)
	{
		if(mark[i] || i == p[i])
			continue ;
		ans += i - last ;
		last = i ;
		int x = i ;
		while(!mark[x])
		{
			mark[x] = 1 ;
			ans += abs(p[x] - x) ;
			x = p[x] ;
		}
	}
	ans += last ;
	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...