이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "books.h"
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
#define fi first
#define se second
#define mp make_pair
int n;
const int N = (int)1e6 + 10;
int lef[N], rig[N];
bool vis[N];
long long minimum_walk(vector<int> p, int s) {
n = p.size();
int id;
int low, high;
ll sol = 0;
for(int i = 0 ; i < n; i ++ ){
sol += abs(p[i] - i);
if(!vis[i]){
vector<int> cyc;
id = i;
while(!vis[id]){
vis[id]=true;
cyc.push_back(id);
id=p[id];
}
low = n-1;
high = 0;
for(auto x : cyc){
low = min(low, x);
high = max(high, x);
}
for(auto x : cyc){
lef[x] = low;
rig[x] = high;
}
}
}
int cur = rig[0];
while(cur + 1 < n){
cur = rig[cur + 1];
sol += 2 ;
}
return sol;
}
# | 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... |