#include #include int x[200010]; std::set S; int main() { int a; scanf("%d",&a); for(int i=1;i<=a;i++) scanf("%d",&x[i]); for(int i=1;i<=a;i++) S.insert(i); long long int sum = 0; for(int i=a;i>=1;i--) { std::set ::iterator it = S.lower_bound(x[i]); if(it==S.end()) { S.erase(S.begin()); sum -= i; } else { std::set ::iterator it2 = it; it2++; if((*it)==x[i]) { if(it2==S.end()) S.erase(it); else { S.erase(it2); sum += i; } } else { S.erase(it); sum += i; } } } printf("%lld",sum); }