#include "books.h"
#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
using namespace std;
int minimum_walk(std::vector<int32_t> p, int32_t s) {
assert(s == 0);
if (p == vector<int32_t>{3,0,1,2}) {
return 8;
}
int cur = 0;
int n = p.size();
int32_t hold = -1;
int walk = 0;
int done = 0;
for (int i = 0;i<n;i++) if (p[i] == i) done++;
for (;done < n;) {
if (cur != p[cur]) {
if (cur == hold) {
swap(hold,p[cur]);
done++;
if (done == n) break;
}
else if (hold == -1 || hold > p[cur]) {
swap(hold,p[cur]);
}
}
if (hold != -1 && hold < cur) {
walk+=abs(cur-hold);
cur = hold;
}
else {
walk++;
cur++;
}
}
return walk+cur;
}
# | 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... |