Submission #1025031

#TimeUsernameProblemLanguageResultExecution timeMemory
1025031fv3Meetings (IOI18_meetings)C++14
19 / 100
2315 ms786432 KiB
#include "meetings.h"
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

vector<vector<ll>> l, r;

vector<ll> minimum_costs(vector<int> H, vector<int> L, vector<int> R)
{
	const int Q = L.size(), N = H.size();
	l = r = vector<vector<ll>>(N);

	for (int i = 0; i < N; i++)
	{
		ll mxl, mxr; 
		mxl = mxr = H[i];

		ll suml = mxl, sumr = 0;
		l[i].push_back(suml);
		r[i].push_back(sumr);

		for (int j = i - 1; j >= 0; j--)
		{
			mxl = max(mxl, (ll)H[j]);
			suml += mxl;
			l[i].push_back(suml);
		}
		for (int j = i + 1; j < N; j++)
		{
			mxr = max(mxr, (ll)H[j]);
			sumr += mxr;
			r[i].push_back(sumr);
		}
	}

	vector<ll> C;
	for (int q = 0; q < Q; q++)
	{
		ll mn = 1ll << 60ll;
		for (int i = L[q]; i <= R[q]; i++)
		{
			mn = min(mn, l[i][i-L[q]] + r[i][R[q]-i]);
		}

		C.push_back(mn);
	}
	return C;
}
#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...