Submission #134712

# Submission time Handle Problem Language Result Execution time Memory
134712 2019-07-23T07:47:22 Z Mahdi_Jfri Shortcut (IOI16_shortcut) C++14
0 / 100
5 ms 2428 KB
#include "shortcut.h"
#include<bits/stdc++.h>

using namespace std;

#define ll long long
#define pb push_back

const int maxn = 5e2 + 20;

ll s[maxn] , pf[maxn] , sf[maxn] , mxp[maxn] , mxs[maxn];
int d[maxn];

ll mx[maxn][maxn];

ll fn(int a , int b)
{
	if(a > b)
		swap(a , b);

	return s[b] - s[a];
}

long long find_shortcut(int n, std::vector<int> L, std::vector<int> D, int c)
{
	for(int i = 0; i < n; i++)
	{
		d[i] = D[i];
		if(i)
			s[i] = L[i - 1] + s[i - 1];
	}

	memset(pf , -63 , sizeof pf);
	memset(sf , -63 , sizeof sf);
	memset(mxp , -63 , sizeof mxp);
	memset(mxs , -63 , sizeof mxs);
	for(int i = 0; i < n; i++)
	{
		if(i)
		{
			pf[i] = pf[i - 1];
			mxp[i] = mxp[i - 1];
			pf[i] = max(pf[i - 1] , mxp[i - 1] + d[i] + s[i]);
		}

		mxp[i] = max(mxp[i] , d[i] - s[i]);
	}

	for(int i = n - 1; i >= 0; i--)
	{
		sf[i] = max(sf[i + 1] , d[i] - s[i] + mxs[i + 1]);
		mxs[i] = max(mxs[i + 1] , d[i] + s[i]);
	}

	memset(mx , -63 , sizeof mx);
	for(int i = 0; i < n; i++)
		for(int j = i + 1; j < n; j++)
			mx[i][j] = max(mx[i][j - 1] , d[i] - s[i]);

	ll ans = pf[n - 1];
	for(int l = 0; l < n; l++)
		for(int r = l + 1; r < n; r++)
		{
			if(c > s[r] - s[l])
				continue;

			ll res = max(pf[l] , sf[r]);
			res = max(res , mxp[l] + mxs[r] + c - (s[r] - s[l]));

			int pt = l + 1;
			ll Mx = -1e18;
			for(int v = l + 1; v < r; v++)
			{
				ll dis1 = min(s[v] - s[l] , s[r] - s[v] + c) + mxp[l] + s[l] + d[v];
				ll dis2 = min(s[r] - s[v] , s[v] - s[l] + c) + mxs[r] - s[r] + d[v];
				res = max(res , max(dis1 , dis2));

				while(pt < v && s[v] - s[pt] >= s[r] - s[v] + c + s[pt] - s[l])
				{
					Mx = max(Mx , s[pt] + d[pt]);
					pt++;
				}

				for(int u = pt; u < v; u++)
					if(s[v] - s[u] > s[r] - s[v] + c + s[pt] - s[l])
						while(1);

				res = max(res , s[v] + mx[pt][v] + d[v]);
				res = max(res , s[r] - s[v] + c - s[l] + Mx + d[v]);
			}

			ans = min(ans , res);
		}

	return ans;
}



# Verdict Execution time Memory Grader output
1 Correct 4 ms 2424 KB n = 4, 80 is a correct answer
2 Correct 4 ms 2424 KB n = 9, 110 is a correct answer
3 Correct 4 ms 2424 KB n = 4, 21 is a correct answer
4 Correct 4 ms 2424 KB n = 3, 4 is a correct answer
5 Correct 4 ms 2428 KB n = 2, 62 is a correct answer
6 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
7 Correct 4 ms 2424 KB n = 3, 29 is a correct answer
8 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
9 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
10 Correct 5 ms 2424 KB n = 2, 2000000001 is a correct answer
11 Correct 4 ms 2424 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
14 Correct 4 ms 2424 KB n = 4, 3000000001 is a correct answer
15 Correct 4 ms 2424 KB n = 4, 4000000000 is a correct answer
16 Correct 4 ms 2424 KB n = 5, 4000000000 is a correct answer
17 Correct 4 ms 2396 KB n = 10, 1000000343 is a correct answer
18 Correct 4 ms 2424 KB n = 10, 3189 is a correct answer
19 Correct 4 ms 2424 KB n = 10, 7000000000 is a correct answer
20 Correct 4 ms 2424 KB n = 5, 12 is a correct answer
21 Correct 4 ms 2424 KB n = 5, 25 is a correct answer
22 Correct 4 ms 2424 KB n = 2, 122 is a correct answer
23 Incorrect 4 ms 2424 KB n = 10, incorrect answer: jury 117 vs contestant 109
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2424 KB n = 4, 80 is a correct answer
2 Correct 4 ms 2424 KB n = 9, 110 is a correct answer
3 Correct 4 ms 2424 KB n = 4, 21 is a correct answer
4 Correct 4 ms 2424 KB n = 3, 4 is a correct answer
5 Correct 4 ms 2428 KB n = 2, 62 is a correct answer
6 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
7 Correct 4 ms 2424 KB n = 3, 29 is a correct answer
8 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
9 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
10 Correct 5 ms 2424 KB n = 2, 2000000001 is a correct answer
11 Correct 4 ms 2424 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
14 Correct 4 ms 2424 KB n = 4, 3000000001 is a correct answer
15 Correct 4 ms 2424 KB n = 4, 4000000000 is a correct answer
16 Correct 4 ms 2424 KB n = 5, 4000000000 is a correct answer
17 Correct 4 ms 2396 KB n = 10, 1000000343 is a correct answer
18 Correct 4 ms 2424 KB n = 10, 3189 is a correct answer
19 Correct 4 ms 2424 KB n = 10, 7000000000 is a correct answer
20 Correct 4 ms 2424 KB n = 5, 12 is a correct answer
21 Correct 4 ms 2424 KB n = 5, 25 is a correct answer
22 Correct 4 ms 2424 KB n = 2, 122 is a correct answer
23 Incorrect 4 ms 2424 KB n = 10, incorrect answer: jury 117 vs contestant 109
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2424 KB n = 4, 80 is a correct answer
2 Correct 4 ms 2424 KB n = 9, 110 is a correct answer
3 Correct 4 ms 2424 KB n = 4, 21 is a correct answer
4 Correct 4 ms 2424 KB n = 3, 4 is a correct answer
5 Correct 4 ms 2428 KB n = 2, 62 is a correct answer
6 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
7 Correct 4 ms 2424 KB n = 3, 29 is a correct answer
8 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
9 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
10 Correct 5 ms 2424 KB n = 2, 2000000001 is a correct answer
11 Correct 4 ms 2424 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
14 Correct 4 ms 2424 KB n = 4, 3000000001 is a correct answer
15 Correct 4 ms 2424 KB n = 4, 4000000000 is a correct answer
16 Correct 4 ms 2424 KB n = 5, 4000000000 is a correct answer
17 Correct 4 ms 2396 KB n = 10, 1000000343 is a correct answer
18 Correct 4 ms 2424 KB n = 10, 3189 is a correct answer
19 Correct 4 ms 2424 KB n = 10, 7000000000 is a correct answer
20 Correct 4 ms 2424 KB n = 5, 12 is a correct answer
21 Correct 4 ms 2424 KB n = 5, 25 is a correct answer
22 Correct 4 ms 2424 KB n = 2, 122 is a correct answer
23 Incorrect 4 ms 2424 KB n = 10, incorrect answer: jury 117 vs contestant 109
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2424 KB n = 4, 80 is a correct answer
2 Correct 4 ms 2424 KB n = 9, 110 is a correct answer
3 Correct 4 ms 2424 KB n = 4, 21 is a correct answer
4 Correct 4 ms 2424 KB n = 3, 4 is a correct answer
5 Correct 4 ms 2428 KB n = 2, 62 is a correct answer
6 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
7 Correct 4 ms 2424 KB n = 3, 29 is a correct answer
8 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
9 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
10 Correct 5 ms 2424 KB n = 2, 2000000001 is a correct answer
11 Correct 4 ms 2424 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
14 Correct 4 ms 2424 KB n = 4, 3000000001 is a correct answer
15 Correct 4 ms 2424 KB n = 4, 4000000000 is a correct answer
16 Correct 4 ms 2424 KB n = 5, 4000000000 is a correct answer
17 Correct 4 ms 2396 KB n = 10, 1000000343 is a correct answer
18 Correct 4 ms 2424 KB n = 10, 3189 is a correct answer
19 Correct 4 ms 2424 KB n = 10, 7000000000 is a correct answer
20 Correct 4 ms 2424 KB n = 5, 12 is a correct answer
21 Correct 4 ms 2424 KB n = 5, 25 is a correct answer
22 Correct 4 ms 2424 KB n = 2, 122 is a correct answer
23 Incorrect 4 ms 2424 KB n = 10, incorrect answer: jury 117 vs contestant 109
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2424 KB n = 4, 80 is a correct answer
2 Correct 4 ms 2424 KB n = 9, 110 is a correct answer
3 Correct 4 ms 2424 KB n = 4, 21 is a correct answer
4 Correct 4 ms 2424 KB n = 3, 4 is a correct answer
5 Correct 4 ms 2428 KB n = 2, 62 is a correct answer
6 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
7 Correct 4 ms 2424 KB n = 3, 29 is a correct answer
8 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
9 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
10 Correct 5 ms 2424 KB n = 2, 2000000001 is a correct answer
11 Correct 4 ms 2424 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
14 Correct 4 ms 2424 KB n = 4, 3000000001 is a correct answer
15 Correct 4 ms 2424 KB n = 4, 4000000000 is a correct answer
16 Correct 4 ms 2424 KB n = 5, 4000000000 is a correct answer
17 Correct 4 ms 2396 KB n = 10, 1000000343 is a correct answer
18 Correct 4 ms 2424 KB n = 10, 3189 is a correct answer
19 Correct 4 ms 2424 KB n = 10, 7000000000 is a correct answer
20 Correct 4 ms 2424 KB n = 5, 12 is a correct answer
21 Correct 4 ms 2424 KB n = 5, 25 is a correct answer
22 Correct 4 ms 2424 KB n = 2, 122 is a correct answer
23 Incorrect 4 ms 2424 KB n = 10, incorrect answer: jury 117 vs contestant 109
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2424 KB n = 4, 80 is a correct answer
2 Correct 4 ms 2424 KB n = 9, 110 is a correct answer
3 Correct 4 ms 2424 KB n = 4, 21 is a correct answer
4 Correct 4 ms 2424 KB n = 3, 4 is a correct answer
5 Correct 4 ms 2428 KB n = 2, 62 is a correct answer
6 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
7 Correct 4 ms 2424 KB n = 3, 29 is a correct answer
8 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
9 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
10 Correct 5 ms 2424 KB n = 2, 2000000001 is a correct answer
11 Correct 4 ms 2424 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
14 Correct 4 ms 2424 KB n = 4, 3000000001 is a correct answer
15 Correct 4 ms 2424 KB n = 4, 4000000000 is a correct answer
16 Correct 4 ms 2424 KB n = 5, 4000000000 is a correct answer
17 Correct 4 ms 2396 KB n = 10, 1000000343 is a correct answer
18 Correct 4 ms 2424 KB n = 10, 3189 is a correct answer
19 Correct 4 ms 2424 KB n = 10, 7000000000 is a correct answer
20 Correct 4 ms 2424 KB n = 5, 12 is a correct answer
21 Correct 4 ms 2424 KB n = 5, 25 is a correct answer
22 Correct 4 ms 2424 KB n = 2, 122 is a correct answer
23 Incorrect 4 ms 2424 KB n = 10, incorrect answer: jury 117 vs contestant 109
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2424 KB n = 4, 80 is a correct answer
2 Correct 4 ms 2424 KB n = 9, 110 is a correct answer
3 Correct 4 ms 2424 KB n = 4, 21 is a correct answer
4 Correct 4 ms 2424 KB n = 3, 4 is a correct answer
5 Correct 4 ms 2428 KB n = 2, 62 is a correct answer
6 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
7 Correct 4 ms 2424 KB n = 3, 29 is a correct answer
8 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
9 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
10 Correct 5 ms 2424 KB n = 2, 2000000001 is a correct answer
11 Correct 4 ms 2424 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
14 Correct 4 ms 2424 KB n = 4, 3000000001 is a correct answer
15 Correct 4 ms 2424 KB n = 4, 4000000000 is a correct answer
16 Correct 4 ms 2424 KB n = 5, 4000000000 is a correct answer
17 Correct 4 ms 2396 KB n = 10, 1000000343 is a correct answer
18 Correct 4 ms 2424 KB n = 10, 3189 is a correct answer
19 Correct 4 ms 2424 KB n = 10, 7000000000 is a correct answer
20 Correct 4 ms 2424 KB n = 5, 12 is a correct answer
21 Correct 4 ms 2424 KB n = 5, 25 is a correct answer
22 Correct 4 ms 2424 KB n = 2, 122 is a correct answer
23 Incorrect 4 ms 2424 KB n = 10, incorrect answer: jury 117 vs contestant 109
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2424 KB n = 4, 80 is a correct answer
2 Correct 4 ms 2424 KB n = 9, 110 is a correct answer
3 Correct 4 ms 2424 KB n = 4, 21 is a correct answer
4 Correct 4 ms 2424 KB n = 3, 4 is a correct answer
5 Correct 4 ms 2428 KB n = 2, 62 is a correct answer
6 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
7 Correct 4 ms 2424 KB n = 3, 29 is a correct answer
8 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
9 Correct 4 ms 2424 KB n = 2, 3 is a correct answer
10 Correct 5 ms 2424 KB n = 2, 2000000001 is a correct answer
11 Correct 4 ms 2424 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 2424 KB n = 3, 3000000000 is a correct answer
14 Correct 4 ms 2424 KB n = 4, 3000000001 is a correct answer
15 Correct 4 ms 2424 KB n = 4, 4000000000 is a correct answer
16 Correct 4 ms 2424 KB n = 5, 4000000000 is a correct answer
17 Correct 4 ms 2396 KB n = 10, 1000000343 is a correct answer
18 Correct 4 ms 2424 KB n = 10, 3189 is a correct answer
19 Correct 4 ms 2424 KB n = 10, 7000000000 is a correct answer
20 Correct 4 ms 2424 KB n = 5, 12 is a correct answer
21 Correct 4 ms 2424 KB n = 5, 25 is a correct answer
22 Correct 4 ms 2424 KB n = 2, 122 is a correct answer
23 Incorrect 4 ms 2424 KB n = 10, incorrect answer: jury 117 vs contestant 109
24 Halted 0 ms 0 KB -