Submission #1244944

#TimeUsernameProblemLanguageResultExecution timeMemory
1244944JoenPoenManMeetings (IOI18_meetings)C++20
0 / 100
0 ms324 KiB
#include "meetings.h" #include <bits/stdc++.h> using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; #define int long long std::vector<long long> minimum_costs(std::vector<signed> H, std::vector<signed> L, std::vector<signed> R) { int Q = L.size(); int n = H.size(); std::vector<long long> C(Q); vvi dp(n, vi(n, 0)); for(int i = 0; i < n; i++) { dp[i][i] = H[i]; int mx = H[i]; int total = 0; for(int k = i; k < n; k++) { mx = max((int)H[k], mx); total += mx; dp[i][k] = total; } } vvi dp1(n, vi(n, 0)); for(int i = 0; i < n; i++) { dp[i][i] = H[i]; int mx = H[i]; int total = 0; for(int k = i; k >= 0; k--) { mx = max((int)H[k], mx); total += mx; dp[i][k] = total; } } auto getmax = [&](int l, int r) { int re = 0; for(int i = l; i < r; i++) { re = max(re, (int)H[i]); } return re; }; for (int j = 0; j < Q; ++j) { int best = LONG_LONG_MAX; for(int i = L[j]; i <= R[j]; i++) { int score = dp[i][R[j]] + dp1[i][L[j]] - H[i]; best = min(score, best); } C[j] = best; } 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...