Submission #1061425

#TimeUsernameProblemLanguageResultExecution timeMemory
1061425ZicrusAncient Books (IOI17_books)C++17
0 / 100
0 ms348 KiB
#include <bits/stdc++.h>
#include "books.h"
using namespace std;

typedef long long ll;

ll minimum_walk(vector<int> p, int s) {
    ll n = p.size();
	ll base = 0;
    for (int i = 0; i < n; i++) base += abs(p[i] - i);

    vector<bool> vst(n);
    ll numCyc = -1;
    for (int i = 0; i < n; i++) {
        if (vst[i]) continue;
        numCyc++;
 
        ll cur = i;
        do {
            cur = p[cur];
            vst[cur] = true;
        } while (cur != i);
    }

    return base + 2*numCyc;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...