# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
831740 | finn__ | Ancient Books (IOI17_books) | C++17 | 95 ms | 14864 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;
using L = long long;
long long minimum_walk(std::vector<int> p, int s)
{
size_t const n = p.size();
L ans = 0;
for (int i = 0; i < n; ++i)
ans += abs(i - p[i]);
int first_non_id = 0, last_non_id = n - 1;
while (first_non_id < n && p[first_non_id] == first_non_id)
++first_non_id;
while (last_non_id >= 0 && p[last_non_id] == last_non_id)
--last_non_id;
first_non_id = min(first_non_id, s);
last_non_id = max(last_non_id, s);
int component_end = 0;
for (int i = first_non_id; i <= last_non_id; ++i)
{
component_end = max(component_end, max(i, p[i]));
if (component_end == i)
ans += 2;
}
return ans - 2;
}
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... |