| 比赛 |
2026.9.5 |
评测结果 |
AAAAAAAAAAAAAAA |
| 题目名称 |
Pretty Pens |
最终得分 |
100 |
| 用户昵称 |
小福鑫 |
运行时间 |
9.541 s |
| 代码语言 |
C++ |
内存使用 |
24.57 MiB |
| 提交时间 |
2026-09-05 09:01:32 |
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,q,c[200001],p[200001],op,x,y,ans;
multiset<int> st[200001],mx,se;
void add(int x){
mx.insert(*st[x].rbegin());
ans+=*st[x].rbegin();
if(st[x].size()>1){
se.insert(*(++st[x].rbegin()));
}
}
void del(int x){
mx.erase(mx.find(*st[x].rbegin()));
ans-=*st[x].rbegin();
if(st[x].size()>1){
se.erase(se.find(*(++st[x].rbegin())));
}
}
void print(){
int mn=*mx.begin(),mxx=0;
if(se.size()){
mxx=*se.rbegin();
}
if(mxx>mn){
cout<<ans-mn+mxx<<"\n";
}
else{
cout<<ans<<"\n";
}
}
signed main(){
freopen("Pens.in","r",stdin);
freopen("Pens.out","w",stdout);
cin>>n>>m>>q;
for(int i=1;i<=n;i++){
cin>>c[i]>>p[i];
st[c[i]].insert(p[i]);
}
for(int i=1;i<=m;i++){
add(i);
}
print();
while(q--){
cin>>op>>x>>y;
if(op==1){
del(c[x]),del(y);
st[c[x]].erase(st[c[x]].find(p[x]));
st[y].insert(p[x]);
add(c[x]),add(y);
c[x]=y;
}
else{
del(c[x]);
st[c[x]].erase(st[c[x]].find(p[x]));
st[c[x]].insert(y);
add(c[x]);
p[x]=y;
}
print();
}
}