# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1083154 | 2024-09-02T16:55:09 Z | Math4Life2020 | Ancient Books (IOI17_books) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<ll,ll>; ll minimum_walk(int p[], int s) { ll N = sizeof(p); assert(s==0); ll ans = 0; bool found[N]; for (ll i=0;i<N;i++) { found[i]=0; } ll D = 0; for (ll i=0;i<N;i++) { if (!found[i]) { ll j = i; ll dmin = 1e8; do { found[j]=1; dmin = min(dmin,j); ans += abs(p[j]-j); j = p[j]; } while (j != i); D = max(D,dmin); } } ans -= 2*D; return ans; }