Submission
Status:
(PPPPPPPPPPPPTS)(PPPPPP-SSSS)(PPPPPPPPP)(PPPPPTSSSS)(PPPPP-SSSS)(PPPP-SSSSSSSSS)(PTSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{0/5}{0/7}{8/8}{0/12}{0/16}{0/28}{0/24}
Score: 8
User: KantaponZ
Problemset: แคง (Kang)
Language: cpp
Time: 2.089 second
Submitted On: 2025-06-30 07:58:59
#include <bits/stdc++.h>
using namespace std;
#define ll long long
unordered_map<int,int> cnt;
unordered_map<int,bool> del;
vector<ll> C;
priority_queue<pair<ll, int>> pq;
vector<long long> capsize(vector<int> A, vector<int> B) {
int N = A.size(), M = B.size();
ll sum = 0;
for (int i = 0; i < N; i++) {
sum += A[i];
cnt[A[i]]++;
}
for (auto [k, v] : cnt) {
pq.push({k * v, k});
}
for (int i = 0; i < M; i++) {
if (sum == 0) {
C.emplace_back(0);
continue;
}
if (!del[B[i]]) {
sum += B[i];
cnt[B[i]]++;
pq.push({B[i] * cnt[B[i]], B[i]});
}
if (pq.empty()) {
sum = 0;
C.emplace_back(sum);
}
while (del[pq.top().second] == true) {
pq.pop();
}
sum = sum - pq.top().first;
del[pq.top().second] = true;
pq.pop();
C.emplace_back(sum);
}
return C;
}