比赛 2026.9.5 评测结果 AAAAAAAAAAATTTT
题目名称 Pretty Pens 最终得分 72
用户昵称 __0w0__ 运行时间 14.514 s
代码语言 C++ 内存使用 20.76 MiB
提交时间 2026-09-05 12:34:42
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
multiset<pair<int,int>>s[200001];
int n,m,q;
int c[200001],e[200001];
long long ans;
inline int read(){
    int x=0;
    char c=getchar();
    while(!isdigit(c))c=getchar();
    while(isdigit(c))x=(x<<1)+(x<<3)+(c^48),c=getchar();
    return x;
}
inline void solve(){
    ans=0;
    int mi=1;
    priority_queue<int>q; 
    for(int i=1;i<=m;i++){
//        cout<<i<<':';
        if(!s[i].empty()){
        auto it=s[i].begin();
        auto x=*it;
        int f=x.first;
//        cout<<-*it<<" ";
        q.push(f);
        ans-=f;
        it++;
        x=*it;
        f=x.first;
        if(it!=s[i].end())mi=min(mi,f);    
//        while(it!=s[i].end())cout<<-*it<<" ",it++;
        }
//        cout<<'\n';
    }
//    cout<<q.top()<<' '<<mi<<' ';
    if(!q.empty())ans+=max(0,q.top()-mi);
    printf("%lld\n",ans);
}
int main(){
    freopen("Pens.in","r",stdin);
    freopen("Pens.out","w",stdout);
    n=read();
    m=read();
    q=read();
    for(int i=1;i<=n;i++){
        c[i]=read();
        e[i]=read();
        s[c[i]].insert(make_pair(-e[i],i));
    }
    solve();
    for(int i=1;i<=q;i++){
        int a=read(),b=read(),d=read();
        
        if(a==1){
            auto x=s[c[b]].find(make_pair(-e[b],b));
//            cout<<"YES";
            s[c[b]].erase(*x);
            
//            s[c[b]][x]=0;
            s[d].insert(make_pair(-e[b],b));
            c[b]=d;
        }else{
            auto x=s[c[b]].find(make_pair(-e[b],b));
            s[c[b]].erase(*x);
            s[c[b]].insert(make_pair(-d,b));
            e[b]=d;
        }
        solve();
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}