#include "books.h"
#define dbg(x) cerr<<#x<<": "<<x<<endl
#define here cerr<<"================================\n"
#include <bits/stdc++.h>
#define ll long long
#define llinf 1000000000000000000LL
#define pb push_back
#define sz(a) (ll)(a.size())
#define all(a) a.begin(),a.end()
#define fi first
#define sc second
#define endl '\n'
#define ceri(a,l,r) {for(ll i_ = l;i_<=r;i_++) cerr<<a[i_]<< " ";cerr<<endl;}
using namespace std;
#define maxn 1000005
ll n,st,it;
ll a[maxn],col[maxn],mx[maxn];
vector<ll> g[maxn];
long long minimum_walk(vector<int> p, int s) {
n = sz(p);
for(ll i = 1;i<=n;i++) a[i] = p[i-1]+1;
reverse(all(p));
//if(is_sorted(all(p))&&n==4) return 8;
st = s+1;
ll ans = 0;
for(ll i = 1;i<=n;i++){
if(col[i]) continue;
if(i==a[i]) continue;
ll x = a[i];
ans+=abs(i-a[i]);
it++;
col[i] = it;
mx[it] = i;
while(x!=i){
mx[it] = max(mx[it],x);
col[x] = it;
ans+=abs(x-a[x]);
x = a[x];
}
}
set<ll> cur;
for(ll i = 1;i<=n;i++){
if(col[i]){
for(ll j = 1;j<=it;j++) if(mn[j]<=mx[col[i]]) cur.insert(j);
}
if(sz(cur)==it){
ans+=2*(i-1);
break;
}
}
return ans;
}
/*
4 0
0 2 3 1
4 0
3 2 1 0
*/
Compilation message
books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:45:40: error: 'mn' was not declared in this scope; did you mean 'mx'?
45 | for(ll j = 1;j<=it;j++) if(mn[j]<=mx[col[i]]) cur.insert(j);
| ^~
| mx