# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
69260 | Bruteforceman | Ancient Books (IOI17_books) | C++11 | 6 ms | 700 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "books.h"
#include "bits/stdc++.h"
using namespace std;
long long minimum_walk(std::vector<int> p, int s) {
bool good = true;
for(int i = 0; i < p.size(); i++) {
if(p[i] != i) {
good = false;
}
}
if(good) return 0;
int l = 0;
int r = p.size() - 1;
long long ans = 0;
while(l < p.size() && p[l] == l) {
if(s == l) {
ans += 2;
++s;
}
++l;
}
while(r >= 0 && p[r] == r) {
if(s == r) {
ans += 2;
--s;
}
--r;
}
for(int i = l; i < r; i++) {
int go_left = 0;
int go_right = 0;
for(int j = l; j <= i; j++) {
if(p[j] > i) {
++go_left;
}
}
for(int j = i + 1; j <= r; j++) {
if(p[j] < i+1) {
++go_right;
}
}
assert(go_left == go_right);
ans += go_left + go_right;
}
return ans;
}
Compilation message (stderr)
# | 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... |