제출 #794002

#제출 시각아이디문제언어결과실행 시간메모리
794002Sohsoh84모임들 (IOI18_meetings)C++17
19 / 100
778 ms528852 KiB
#include "meetings.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll MAXN = 5e3 + 10;

ll FL[MAXN][MAXN], FR[MAXN][MAXN];

vector<ll> minimum_costs(std::vector<int> H, std::vector<int> L, std::vector<int> R) {
	int Q = L.size();	
	int n = H.size();
	vector<ll> ans(Q);

	for (int x = 0; x < n; x++) {
		ll mx = H[x];
		FL[x][x] = FR[x][x] = mx;
		for (int i = x - 1; i >= 0; i--) {
			mx = max(mx, ll(H[i]));
			FL[i][x] = FL[i + 1][x] + mx;
		}

		mx = H[x];
		for (int i = x + 1; i < n; i++) {
			mx = max(mx, ll(H[i]));
			FR[i][x] = FR[i - 1][x] + mx;
		}
	}

	for (int i = 0; i < Q; i++) {
		ans[i] = numeric_limits<ll>::max();
		for (int x = L[i]; x <= R[i]; x++)
			ans[i] = min(ans[i], FL[L[i]][x] + FR[R[i]][x] - H[x]);
	}

	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...