Submission
Status:
(PPPPPPPPPPPPPP)(PPPPPPPPPPP)(PPPPPPPPP)(PPPPPPPPPP)(PPPPPPPPPP)(TSSSSSSSSSSSSS)(TSSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{5/5}{7/7}{8/8}{12/12}{16/16}{0/28}{0/24}
Score: 48
User: qweqwe
Problemset: แคง (Kang)
Language: cpp
Time: 2.100 second
Submitted On: 2026-03-26 21:16:29
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<ll,ll>;
using db = long double;
vector<long long> capsize(vector<int> a, vector<int> b) {
int n=a.size(),m=b.size();
unordered_map<ll,ll> cnt;
multiset<pii> contri;
vector<ll> ans;
ll sum=0;
for (ll i:a){
if (cnt[i]){
contri.erase({cnt[i]*i,i});
}
cnt[i]++;
contri.insert({cnt[i]*i,i});
sum+=i;
}
for (int i=0;i<m;i++){
ll x=b[i];
if (cnt[x]){
contri.erase({cnt[x]*x,x});
}
cnt[x]++;
contri.insert({cnt[x]*x,x});
sum+=x;
ll temp=sum;
ll k = i+1;
auto it=contri.rbegin();
while (k-- && it!=contri.rend()){
temp-=(it->first);++it;
}
if (it==contri.rend()){
ans.push_back(0);
}ans.push_back(temp);
}
return ans;
}
/*
5 4
6 3 9 6 3
4 6 9 6
19 10 4 0
8 7
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15
36 36 36 36 36 36 36
5 4
32 78 4 10 9
52 46 33 77
107 101 88 88
5 4
1 2 3 4 5
4 4 4 4
*/