제출 #1348272

#제출 시각아이디문제언어결과실행 시간메모리
1348272inesfi고대 책들 (IOI17_books)C++20
0 / 100
0 ms344 KiB
#include "books.h"
#include<bits/stdc++.h>
using namespace std;

#define ll long long

vector<int> prochain;
vector<int> dejavu;

void dfs(int pos){
	if (dejavu[pos]==1){
		return ;
	}
	dejavu[pos]=1;
	dfs(prochain[pos]);
}

ll minimum_walk(vector<int> p, int depart) {
	prochain=p;
	int n=prochain.size();
	ll rep=0;
	for (int i=0;i<n;i++){
		rep+=abs(i-prochain[i]);
	}
	dejavu.resize(n);
	int avant=0;
	for (int i=0;i<n;i++){
		if (dejavu[i]==0){
			rep+=i-avant;
			dfs(i);
			avant=i;
		}
	}
	return rep+avant;
}
#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...