Submission #1208057

#TimeUsernameProblemLanguageResultExecution timeMemory
1208057jasonicAncient Books (IOI17_books)C++20
0 / 100
1 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define fastIO cin.tie(0); ios::sync_with_stdio(false)

ll minimum_walk(vector<int> p, int s) {
    ll n = size(p);
    vector<bool> vis(n, false);
    assert(s == 0);
    ll ans = 0;
    ll last = 0;

    for(int i = 0; i < n; i++) {
        if(p[i] != i && !vis[i]) {
            ans += i - last;
            ll prev = i;
            ll next = p[i];
            while(next != i) {
                vis[next] = true;
                ans += abs(next - prev);
                prev = p[prev];
                next = p[next];
            }
            ans += abs(next - prev);
            last = i;
        }
        vis[i] = true;
    }
    ans += last;

    return ans;
}
#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...