Submission #610241

#TimeUsernameProblemLanguageResultExecution timeMemory
610241PiejanVDCAncient Books (IOI17_books)C++17
12 / 100
1 ms300 KiB
#include "books.h"
#include <bits/stdc++.h>
using namespace std;
 
long long minimum_walk(vector<int>p, int s) {
    long long last = 0;
    int n = p.size();
    long long ans = 0;
    vector<bool>vis(n,0);
    int mx = -1;
    for(int i = 0 ; i < n ; i++) if(!vis[i]) {
        vis[i] = 1;
        if(i > mx && p[i] != i)
            last = i;
        int pos = i;
        do {
            vis[pos] = 1;
            mx = max(mx, pos);
            int nxt = p[pos];
            ans += abs(nxt-pos);
            pos = nxt;
        } while(pos != i);
    }
    return ans+2*last;
}
#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...