# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
946578 | PagodePaiva | 모임들 (IOI18_meetings) | C++17 | 3676 ms | 786436 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "meetings.h"
#include<bits/stdc++.h>
#define ll long long
#define N 5010
#define inf 1e18
using namespace std;
ll pref[N][N];
ll suf[N][N];
ll v[N][N];
std::vector<long long> minimum_costs(std::vector<int> h, std::vector<int> l,
std::vector<int> r) {
int n = h.size();
for(int i = 0;i < n;i++){
v[i][i] = h[i];
for(int j = i-1;j >= 0;j--) v[j][i] = max(v[j+1][i], (long long) h[j]);
for(int j = i+1;j < n;j++) v[j][i] = max(v[j-1][i], (long long) h[j]);
}
for(int i = 0;i < n;i++){
pref[i][i] = v[i][i];
suf[i][i] = v[i][i];
for(int j = i-1;j >= 0;j--) pref[j][i] = pref[j+1][i] + v[j][i];
for(int j = i+1;j < n;j++) suf[j][i] = suf[j-1][i] + v[j][i];
}
vector <long long> resp;
for(int i = 0;i < l.size();i++){
int lt = l[i], rt = r[i];
ll res = inf;
for(int x = lt;x <= rt;x++){
// cout << pref[lt][x] << ' ' << suf[rt][x] << ' ' << v[x][x] << endl;
res = min(res, pref[lt][x] + suf[rt][x] - v[x][x]);
}
resp.push_back(res);
}
return resp;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |