Submission #128264

#TimeUsernameProblemLanguageResultExecution timeMemory
128264ekremShortcut (IOI16_shortcut)C++98
23 / 100
2029 ms504 KiB
#include "shortcut.h"
#include <bits/stdc++.h>
#define st first
#define nd second
#define mp make_pair
#define pb push_back
#define sol (k+k)
#define sag (k+k+1)
#define orta ((bas+son)/2)
#define coc g[node][i]
#define mod 1000000007
#define inf 1000000000000000009
#define N 1000005
using namespace std;

typedef long long ll;
typedef pair < int , int > ii;
typedef vector < int > vi;

ll n, c, x, y, ans = inf, pre[N];
vi a, d;

ll bul(int i, int j){
	return d[i] + d[j] + min(pre[j] - pre[i], abs(pre[x]-pre[i]) + abs(pre[y]-pre[j]) + c);
}

ll find_shortcut(int nn, vi l, vi dd, int cc){n = nn;c = cc;
	a = l;d = dd;
	for(int i = 0; i < n - 1; i++)
		pre[i + 1] = pre[i] + a[i];
	for(x = 0; x < n; x++)
		for(y = x + 1; y < n; y++){
			ll mx = 0;
			for(int i = 0; i < n; i++)
				for(int j = i + 1; j < n; j++)
					mx = max(mx, bul(i, j));
			ans = min(ans, mx);
		}
	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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...