# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
406889 | ja_kingy | Ancient Books (IOI17_books) | C++14 | 221 ms | 34952 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;
typedef pair<int,int> pii;
long long minimum_walk(vector<int> p, int s) {
long long ans = 0;
int n = p.size(), ccnt = 0;
vector<int> mn(n), mx(n), cyc(n);
vector<pii> evs;
for (int i = 0; i < n; ++i) {
ans += abs(i-p[i]);
if (!cyc[i]) {
ccnt++;
cyc[i] = ccnt;
mn[ccnt] = mx[ccnt] = i;
for (int x = p[i]; x != i; x = p[x]) {
cyc[x] = ccnt;
mn[ccnt] = min(mn[ccnt], x);
mx[ccnt] = max(mx[ccnt], x);
}
if (mn[ccnt] != mx[ccnt] || i == s) {
evs.push_back({mn[ccnt], -1});
evs.push_back({mx[ccnt], 1});
}
}
}
sort(evs.begin(), evs.end());
int rcnt = 0, pv = -1, fst;
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... |