Submission #388562

# Submission time Handle Problem Language Result Execution time Memory
388562 2021-04-12T06:37:12 Z Keshi Shortcut (IOI16_shortcut) C++17
0 / 100
11 ms 19148 KB
//In the name of God
#include <bits/stdc++.h>
#include "shortcut.h"
using namespace std;

typedef long long ll;
typedef pair<ll, ll> pll;

const ll maxn = 2e5 + 100;
const ll mod = 1e9 + 7;
const ll inf = 1e18;

#define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define file_io freopen("input.txt", "r+", stdin);freopen("output.txt", "w+", stdout);
#define pb push_back
#define Mp make_pair
#define F first
#define S second
#define Sz(x) ll((x).size())
#define all(x) (x).begin(), (x).end()
#define lc (id << 1)
#define rc (lc | 1)

struct node{
	ll mxr, mxl, mx;
	node(){
		mxr = mxl = mx = 0;
	}
};

ll n, ps[maxn], d[maxn];
node seg[maxn << 2];

node mrg(node l, node r){
	node nd;
	nd.mx = max({l.mx, r.mx, l.mxl + r.mxr});
	nd.mxl = max(l.mxl, r.mxl);
	nd.mxr = max(l.mxr, r.mxr);
	return nd;
}

void bld(ll id, ll s, ll e){
	if(e - s == 1){
		seg[id].mx = d[s];
		seg[id].mxl = d[s] - ps[s];
		seg[id].mxr = d[s] + ps[s];
		return;
	}
	ll mid = (s + e) >> 1;
	bld(lc, s, mid);
	bld(rc, mid, e);
	seg[id] = mrg(seg[lc], seg[rc]);
	return;
}
node get(ll id, ll s, ll e, ll l, ll r){
	if(r <= s || e <= l) return node();
	if(l <= s && e <= r) return seg[id];
	ll mid = (s + e) >> 1;
	return mrg(get(lc, s, mid, l, r), get(rc, mid, e, l, r));
}
node get(ll l, ll r){
	return get(1, 0, n, l, r);
}

long long find_shortcut(int N, vector<int> l, vector<int> D, int c){
	n = N;
	for(ll i = 0; i < n; i++){
		d[i] = D[i];
		ps[i + 1] = ps[i] + l[i];
	}
	bld(1, 0, n);
	ll ans = get(0, n).mx;
	for(ll i = 0; i < n; i++){
		for(ll j = i + 1; j < n; j++){
			ll x = get(0, i + 1).mxl + get(j, n).mxr - max(0ll, (ps[j] - ps[i]) - c);
			x = max(x, get(0, j).mx);
			x = max(x, get(i + 1, n).mx);
			ans = min(ans, x);
		}
	}
	return ans;
}

/*int main(){
    fast_io;



    return 0;
}*/
# Verdict Execution time Memory Grader output
1 Correct 9 ms 19020 KB n = 4, 80 is a correct answer
2 Correct 10 ms 19148 KB n = 9, 110 is a correct answer
3 Correct 9 ms 19084 KB n = 4, 21 is a correct answer
4 Correct 9 ms 19020 KB n = 3, 4 is a correct answer
5 Correct 9 ms 19104 KB n = 2, 62 is a correct answer
6 Correct 9 ms 19108 KB n = 2, 3 is a correct answer
7 Correct 9 ms 19108 KB n = 3, 29 is a correct answer
8 Correct 9 ms 19020 KB n = 2, 3 is a correct answer
9 Correct 10 ms 19020 KB n = 2, 3 is a correct answer
10 Correct 10 ms 19020 KB n = 2, 2000000001 is a correct answer
11 Correct 9 ms 19020 KB n = 2, 3000000000 is a correct answer
12 Correct 11 ms 19108 KB n = 3, 3000000000 is a correct answer
13 Correct 9 ms 19020 KB n = 3, 3000000000 is a correct answer
14 Incorrect 10 ms 19020 KB n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 19020 KB n = 4, 80 is a correct answer
2 Correct 10 ms 19148 KB n = 9, 110 is a correct answer
3 Correct 9 ms 19084 KB n = 4, 21 is a correct answer
4 Correct 9 ms 19020 KB n = 3, 4 is a correct answer
5 Correct 9 ms 19104 KB n = 2, 62 is a correct answer
6 Correct 9 ms 19108 KB n = 2, 3 is a correct answer
7 Correct 9 ms 19108 KB n = 3, 29 is a correct answer
8 Correct 9 ms 19020 KB n = 2, 3 is a correct answer
9 Correct 10 ms 19020 KB n = 2, 3 is a correct answer
10 Correct 10 ms 19020 KB n = 2, 2000000001 is a correct answer
11 Correct 9 ms 19020 KB n = 2, 3000000000 is a correct answer
12 Correct 11 ms 19108 KB n = 3, 3000000000 is a correct answer
13 Correct 9 ms 19020 KB n = 3, 3000000000 is a correct answer
14 Incorrect 10 ms 19020 KB n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 19020 KB n = 4, 80 is a correct answer
2 Correct 10 ms 19148 KB n = 9, 110 is a correct answer
3 Correct 9 ms 19084 KB n = 4, 21 is a correct answer
4 Correct 9 ms 19020 KB n = 3, 4 is a correct answer
5 Correct 9 ms 19104 KB n = 2, 62 is a correct answer
6 Correct 9 ms 19108 KB n = 2, 3 is a correct answer
7 Correct 9 ms 19108 KB n = 3, 29 is a correct answer
8 Correct 9 ms 19020 KB n = 2, 3 is a correct answer
9 Correct 10 ms 19020 KB n = 2, 3 is a correct answer
10 Correct 10 ms 19020 KB n = 2, 2000000001 is a correct answer
11 Correct 9 ms 19020 KB n = 2, 3000000000 is a correct answer
12 Correct 11 ms 19108 KB n = 3, 3000000000 is a correct answer
13 Correct 9 ms 19020 KB n = 3, 3000000000 is a correct answer
14 Incorrect 10 ms 19020 KB n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 19020 KB n = 4, 80 is a correct answer
2 Correct 10 ms 19148 KB n = 9, 110 is a correct answer
3 Correct 9 ms 19084 KB n = 4, 21 is a correct answer
4 Correct 9 ms 19020 KB n = 3, 4 is a correct answer
5 Correct 9 ms 19104 KB n = 2, 62 is a correct answer
6 Correct 9 ms 19108 KB n = 2, 3 is a correct answer
7 Correct 9 ms 19108 KB n = 3, 29 is a correct answer
8 Correct 9 ms 19020 KB n = 2, 3 is a correct answer
9 Correct 10 ms 19020 KB n = 2, 3 is a correct answer
10 Correct 10 ms 19020 KB n = 2, 2000000001 is a correct answer
11 Correct 9 ms 19020 KB n = 2, 3000000000 is a correct answer
12 Correct 11 ms 19108 KB n = 3, 3000000000 is a correct answer
13 Correct 9 ms 19020 KB n = 3, 3000000000 is a correct answer
14 Incorrect 10 ms 19020 KB n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 19020 KB n = 4, 80 is a correct answer
2 Correct 10 ms 19148 KB n = 9, 110 is a correct answer
3 Correct 9 ms 19084 KB n = 4, 21 is a correct answer
4 Correct 9 ms 19020 KB n = 3, 4 is a correct answer
5 Correct 9 ms 19104 KB n = 2, 62 is a correct answer
6 Correct 9 ms 19108 KB n = 2, 3 is a correct answer
7 Correct 9 ms 19108 KB n = 3, 29 is a correct answer
8 Correct 9 ms 19020 KB n = 2, 3 is a correct answer
9 Correct 10 ms 19020 KB n = 2, 3 is a correct answer
10 Correct 10 ms 19020 KB n = 2, 2000000001 is a correct answer
11 Correct 9 ms 19020 KB n = 2, 3000000000 is a correct answer
12 Correct 11 ms 19108 KB n = 3, 3000000000 is a correct answer
13 Correct 9 ms 19020 KB n = 3, 3000000000 is a correct answer
14 Incorrect 10 ms 19020 KB n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 19020 KB n = 4, 80 is a correct answer
2 Correct 10 ms 19148 KB n = 9, 110 is a correct answer
3 Correct 9 ms 19084 KB n = 4, 21 is a correct answer
4 Correct 9 ms 19020 KB n = 3, 4 is a correct answer
5 Correct 9 ms 19104 KB n = 2, 62 is a correct answer
6 Correct 9 ms 19108 KB n = 2, 3 is a correct answer
7 Correct 9 ms 19108 KB n = 3, 29 is a correct answer
8 Correct 9 ms 19020 KB n = 2, 3 is a correct answer
9 Correct 10 ms 19020 KB n = 2, 3 is a correct answer
10 Correct 10 ms 19020 KB n = 2, 2000000001 is a correct answer
11 Correct 9 ms 19020 KB n = 2, 3000000000 is a correct answer
12 Correct 11 ms 19108 KB n = 3, 3000000000 is a correct answer
13 Correct 9 ms 19020 KB n = 3, 3000000000 is a correct answer
14 Incorrect 10 ms 19020 KB n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 19020 KB n = 4, 80 is a correct answer
2 Correct 10 ms 19148 KB n = 9, 110 is a correct answer
3 Correct 9 ms 19084 KB n = 4, 21 is a correct answer
4 Correct 9 ms 19020 KB n = 3, 4 is a correct answer
5 Correct 9 ms 19104 KB n = 2, 62 is a correct answer
6 Correct 9 ms 19108 KB n = 2, 3 is a correct answer
7 Correct 9 ms 19108 KB n = 3, 29 is a correct answer
8 Correct 9 ms 19020 KB n = 2, 3 is a correct answer
9 Correct 10 ms 19020 KB n = 2, 3 is a correct answer
10 Correct 10 ms 19020 KB n = 2, 2000000001 is a correct answer
11 Correct 9 ms 19020 KB n = 2, 3000000000 is a correct answer
12 Correct 11 ms 19108 KB n = 3, 3000000000 is a correct answer
13 Correct 9 ms 19020 KB n = 3, 3000000000 is a correct answer
14 Incorrect 10 ms 19020 KB n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 19020 KB n = 4, 80 is a correct answer
2 Correct 10 ms 19148 KB n = 9, 110 is a correct answer
3 Correct 9 ms 19084 KB n = 4, 21 is a correct answer
4 Correct 9 ms 19020 KB n = 3, 4 is a correct answer
5 Correct 9 ms 19104 KB n = 2, 62 is a correct answer
6 Correct 9 ms 19108 KB n = 2, 3 is a correct answer
7 Correct 9 ms 19108 KB n = 3, 29 is a correct answer
8 Correct 9 ms 19020 KB n = 2, 3 is a correct answer
9 Correct 10 ms 19020 KB n = 2, 3 is a correct answer
10 Correct 10 ms 19020 KB n = 2, 2000000001 is a correct answer
11 Correct 9 ms 19020 KB n = 2, 3000000000 is a correct answer
12 Correct 11 ms 19108 KB n = 3, 3000000000 is a correct answer
13 Correct 9 ms 19020 KB n = 3, 3000000000 is a correct answer
14 Incorrect 10 ms 19020 KB n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000
15 Halted 0 ms 0 KB -