比赛 2026.9.5 评测结果 AAAAAATWWWWWWWW
题目名称 Pretty Pens 最终得分 37
用户昵称 x123456 运行时间 3.843 s
代码语言 C++ 内存使用 6.24 MiB
提交时间 2026-09-05 09:19:26
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll p[200005];
int n,m,q,c[200005],cnt[200005];
bool can[200005];
struct no{
    int x;
    ll w;
}a[200005],b[200005];
bool cmp(no a,no b){
    return a.w<b.w;
}
int main(){
    freopen("Pens.in","r",stdin);
    freopen("Pens.out","w",stdout);
    scanf("%d%d%d",&n,&m,&q);
    for(int i=1;i<=n;i++){
        scanf("%d%lld",&a[i].x,&a[i].w);
    }
    if(q<=0){
        for(int i=1;i<=n;i++)cnt[a[i].x]++;
        sort(a+1,a+1+n,cmp);
        int cnt2=0;
        ll ans=0;
        bool is=1;
        for(int i=n;i>=1;i--){
            if(cnt2==m)break;
            if(!can[a[i].x]){
                ans+=a[i].w;
                can[a[i].x]=1;
                cnt2++;
            }else{
                if(is){
                    ans+=a[i].w;
                    cnt2++;
                    is=0;
                }
            }
        }
        printf("%lld\n",ans);
    }else if(m==1){
        ll ans=0;
        int idx;
        for(int i=1;i<=n;i++){
            if(ans<a[i].w)ans=a[i].w,idx=i;
        }
        printf("%lld\n",ans);
        for(int i=1;i<=q;i++){
            ll x,y,z;
            scanf("%lld%lld%lld",&x,&y,&z);
            if(x==2){
                a[y].w=z;
                if(idx==y){
                    ans=z;
                    for(int j=1;j<=n;j++){
                        if(ans<a[j].w)ans=a[j].w,idx=j;
                    }
                }else{
                    if(z>ans)ans=z,idx=y;
                }
            }
            printf("%lld\n",ans);
        }
    }
    return 0;
}