Submission #1224593

#TimeUsernameProblemLanguageResultExecution timeMemory
1224593LaMatematica14Tricks of the Trade (CEOI23_trade)C++20
10 / 100
8076 ms5188 KiB
#include <bits/stdc++.h> using namespace std; int main() { int N, K; cin >> N >> K; vector<long long> T(N), S(N); for (int i = 0; i < N; i++) cin >> T[i]; for (int i = 0; i < N; i++) cin >> S[i]; //for (int i = 0; i < N; i++) S[i] -= T[i]; long long best = -1e14; vector<int> belli(N, 0); for (int i = 0; i < N; i++) { priority_queue<int> pq; long long att = 0; for (int j = i; j < N; j++) { att += S[j]-T[j]; pq.push(-S[j]); if (pq.size() > K) { att += pq.top(); pq.pop(); } if (pq.size() == K) best = max(best, att); } } for (int i = 0; i < N; i++) { priority_queue<int> pq; long long att = 0; vector<long long> rem(N, 1e14); for (int j = i; j < N; j++) { att += S[j]-T[j]; pq.push(-S[j]); if (pq.size() > K) { att += pq.top(); pq.pop(); } if ((pq.size() == K) && att == best) rem[j] = -pq.top(); } long long t = 1e14; for (int j = N; j >= i; j--) { t = min(t, rem[j]); if (S[j] >= t) belli[j] = 1; } } cout << best << endl; for (int i = 0; i < N; i++) cout << belli[i]; cout << endl; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...