이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "books.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int>vi;
#define pb push_back
#define sz(x) (int)x.size()
#define all(x) begin(x),end(x)
#define FOR(i,a,b) for(int i=a; i<b; i++)
//--------------------------------
const int MX=1e6+5;
int N;
vi vis(MX,0);
int check(){
FOR(i,0,N) if(!vis[i]) return i;
return N;
}
ll minimum_walk(vi p, int s){
N=sz(p);
FOR(i,0,N) if(p[i]==i) vis[i]=1;
ll ans=0;
while(1){
int idx=check();
if(idx==N) break;
ans+=abs(s-idx);
while(1){
if(vis[idx]) break;
vis[idx]=1;
ans+=abs(idx-p[idx]);
idx=p[idx];
}
s=idx;
}
ans+=abs(s);
return ans;
}
/*
4 0
0 2 3 1
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |