比赛 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();
    }
}