Submission #596688

# Submission time Handle Problem Language Result Execution time Memory
596688 2022-07-15T01:25:27 Z farhan132 Ancient Books (IOI17_books) C++17
0 / 100
1 ms 212 KB
#include "books.h"
#include <bits/stdc++.h>
 
using namespace std;
 
typedef long long ll;
typedef pair<ll , ll> ii;
 
#define ff first
#define ss second
#define pb push_back
#define in insert

long long minimum_walk(std::vector<int> p, int s) {

	 ll n = p.size();

	 vector < ll > vis(n, 0);
	 ll ans = 0;
	 while(n-2 > s && p[n-1] == n-1 ){
	 	n--;
	 }
	 if(n == 0) return 0;
	 ll l = 0;
	 while(p[l] == l && s > l) l++;
	 ll r = n - 1; ll mx = l;

	 if(s < l){
	 	ans += 2*abs(l - s); s = l;
	 }
	 if(s > r){
	 	ans += 2*abs(r - s); s = r;
	 }
	 vector < ll > P(n + 2, -1), dist(n + 2, 0);
	 vector < ll > st; st.pb(l); P[l] = l; dist[l] = l;
	 for(ll i = l; i <= r; i++){
	 	if(vis[i]) continue;
	 	ll c = i; 
	 	ll _mx = c;
	 	while(!vis[c]){
	 		vis[c] = 1;
	 		_mx = max(_mx, c);
	 		ans += abs(p[c] - c); c = p[c];
	 	}
	 	if(mx < i){
	 		P[i] = i;
	 		dist[i] = _mx;
	 		st.pb(i);
	 	}else{
	 		if(i != l) P[i] = P[i - 1];
	 		dist[P[i]] = max(dist[P[i]], _mx);
	 	}
	 	mx = max(mx, _mx);
	 }
	 ans += 2*st.size() - 2;
	 for(auto L : st){
	 	if(L <= s && s <= dist[L]){
	 		//ans += 2 * min(abs(s - L), abs(s - dist[L]));
	 	}
	 }
	 
	return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Incorrect 0 ms 212 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Incorrect 0 ms 212 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Incorrect 0 ms 212 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB 3rd lines differ - on the 1st token, expected: '3304', found: '2744'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Incorrect 0 ms 212 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
10 Halted 0 ms 0 KB -