#include <bits/stdc++.h>
using namespace std;
const int c=100002;
bool v[c];
long long sum;
int n, t[c], mini, maxi;
void dfs(int a) {
mini=min(mini, a);
if (v[t[a]]) dfs(t[a]);
}
long long minimum_walk(vector<int> p, int s) {
n=p.size();
for (int i=0; i<n; i++) t[i]=p[i], sum+=(abs(p[i]-i));
for (int i=0; i<n; i++) if (!v[i]) mini=n, dfs(i), maxi=max(maxi, mini);
return sum+2*maxi;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
384 KB |
3rd lines differ - on the 1st token, expected: '6', found: '10' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
384 KB |
3rd lines differ - on the 1st token, expected: '6', found: '10' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
384 KB |
3rd lines differ - on the 1st token, expected: '6', found: '10' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
384 KB |
3rd lines differ - on the 1st token, expected: '3304', found: '4742' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
384 KB |
3rd lines differ - on the 1st token, expected: '6', found: '10' |
2 |
Halted |
0 ms |
0 KB |
- |