Submission #977642

#TimeUsernameProblemLanguageResultExecution timeMemory
977642happypotatoMeetings (IOI18_meetings)C++17
19 / 100
586 ms196640 KiB
#include "meetings.h" #include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back vector<long long> minimum_costs(vector<int32_t> H, vector<int32_t> L, vector<int32_t> R) { int n = H.size(); if (n <= 5000) { vector<int> ans; int precomp[n][n]; for (int i = 0; i < n; i++) { precomp[i][i] = H[i]; int maxi; maxi = H[i]; for (int j = i - 1; j >= 0; j--) { maxi = max(maxi, 1LL * H[j]); precomp[i][j] = precomp[i][j + 1] + maxi; } maxi = H[i]; for (int j = i + 1; j < n; j++) { maxi = max(maxi, 1LL * H[j]); precomp[i][j] = precomp[i][j - 1] + maxi; } } for (int i = 0; i < (int)(L.size()); i++) { int l = L[i], r = R[i]; int cur = 1e18; for (int j = l; j <= r; j++) { cur = min(cur, precomp[j][l] + precomp[j][r] - precomp[j][j]); } // cerr << l << ' ' << r << ' ' << cur << endl; ans.pb(cur); } return ans; } return {}; } #undef int
#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...