Submission #217805

#TimeUsernameProblemLanguageResultExecution timeMemory
217805MarcoMeijerMeetings (IOI18_meetings)C++14
19 / 100
825 ms239948 KiB
#include "meetings.h" #include <bits/stdc++.h> using namespace std; //macros typedef long long ll; typedef pair<int, int> ii; typedef tuple<int, int, int> iii; typedef vector<int> vi; typedef vector<ii> vii; typedef vector<iii> viii; typedef vector<ll> vll; #define REP(a,b,c) for(int a=int(b); a<int(c); a++) #define RE(a,c) REP(a,0,c) #define RE1(a,c) REP(a,1,c+1) #define REI(a,b,c) REP(a,b,c+1) #define REV(a,b,c) for(int a=int(c-1); a>=int(b); a--) #define INF 1e9 #define pb push_back #define fi first #define se second #define sz size() mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int MX=5000; ll HL[MX][MX]; ll HR[MX][MX]; vll C; int q; int n; vll minimum_costs(vi H, vi L, vi R) { n = H.size(); q = L.size(); RE(r,n) { ll mx=H[r]; HL[r][r] = mx; REV(l,0,r) { mx = max(mx, (ll)H[l]); HL[r][l] = HL[r][l+1]+mx; } } RE(l,n) { ll mx=H[l]; HR[l][l] = mx; REP(r,l+1,n) { mx = max(mx, (ll)H[r]); HR[l][r] = HR[l][r-1]+mx; } } C.resize(q); RE(i,q) { ll ans=1e18; int l=L[i], r=R[i]; REP(i,l,r+1) ans = min(ans, HL[i][l]+HR[i][r]-ll(H[i])); C[i] = ans; } 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...