Submission #337380

#TimeUsernameProblemLanguageResultExecution timeMemory
337380cki86201Ancient Books (IOI17_books)C++17
12 / 100
1 ms384 KiB
#include <bits/stdc++.h>
#include "books.h"
using namespace std;

#define Fi first
#define Se second
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define szz(x) (int)(x).size()
#define rep(i, n) for(int i=0;i<(n);i++)
typedef tuple<int, int, int> t3;

int T[1000010];

ll minimum_walk(vector<int> p, int s) {
	if(s != 0) return -1;
	int n = szz(p);
	ll ans = 0;
	rep(i, n) {
		int l = i, r = p[i];
		if(l > r) swap(l, r);
		T[l]++, T[r]--;
		ans += r - l;
	}
	for(int i=1;i<n;i++) T[i] += T[i-1];
	int f1 = n - 1;
	while(f1 >= 0 && T[f1] == 0) --f1;
	if(f1 < 0) return 0;
	int f = f1;
	while(f1 >= 0 && T[f]) --f;
	ans += (f + 1) * 2;
	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...