이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "books.h"
using namespace std;
long long minimum_walk(vector<int> p, int s) {
int i = s;
int j = s-1;//incl-incl
int mi = s, ma=s;
int n = p.size();
long long cnt = 0;
int b = 0, e = n;
for(int k = 0; k<s&&p[k]==k; k++) b = k+1;
for(int k = n-1; k>s&&p[k]==k; k--) e = k;
while(i>b||j<e-1){
bool bol = false;
while(mi < i){
bol = true;
i--;
mi = min(mi, p[i]);
ma = max(ma, p[i]);
}
while(j<ma){
bol = true;
j++;
mi = min(mi, p[j]);
ma = max(ma, p[j]);
}
if(!bol){
cnt+=2;
//cout<<mi<<" "<<ma<<endl;
if(mi>b){mi--;}
if(ma<e-1){ma++;}
}
}
//cout<<cnt<<endl;
for(int ii = 0; ii<n; ii++){
cnt += abs(ii - p[ii]);
}
return cnt;
}
# | 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... |