제출 #114016

#제출 시각아이디문제언어결과실행 시간메모리
114016faustaadp고대 책들 (IOI17_books)C++17
0 / 100
2 ms384 KiB
#include "books.h"
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll n,i,sud[1010101],p[1010101];
ll car(ll aa)
{
	if(p[aa]==aa)
		return aa;
	else
		return p[aa]=car(p[aa]);
}
void gab(ll aa,ll bb)
{
	p[car(aa)]=car(bb);
}
long long minimum_walk(std::vector<int> x, int s) 
{
	n=x.size();
	ll jaw=0;
	for(i=0;i<n;i++)p[i]=i;
	for(i=0;i<n;i++)jaw+=abs(i-x[i]);
	for(i=0;i<n;i++)
		gab(i,x[i]);
	ll tam=0;
	for(i=0;i<n;i++)
	{
		if(sud[car(i)])continue;
		else tam=i*2;
		sud[car(i)]=1;
	}
	return jaw+tam;
}
#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...