比赛 2026.9.5 评测结果 AAAAAAAAAAAAAAA
题目名称 Pretty Pens 最终得分 100
用户昵称 djyqjy 运行时间 4.219 s
代码语言 C++ 内存使用 24.71 MiB
提交时间 2026-09-05 12:14:54
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define fi first
#define se second
using namespace std;
void chkmax(int &a,int b){a=max(a,b);}
void chkmin(int &a,int b){a=min(a,b);}
inline int re()
{
    char c=getchar();
    int x=0,f=1;
    while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return x*f;
}
const int N=200010;
int n,m,q;
int col[N],p[N];
multiset<int> smax,semax;
multiset<int> s[N];
int summax;
void printans()
{
    int cha=-*smax.begin();
    if(!semax.empty())
    {
        auto it=semax.end();it--;
        cha+=*it;
    }
    cha=max(summax,summax+cha);
    printf("%lld\n",cha);
    return;
}
signed main()
{
    freopen("Pens.in","r",stdin);
    freopen("Pens.out","w",stdout);
    n=re();m=re();q=re();
    for(int i=1;i<=n;i++)
    {
        col[i]=re();p[i]=re();
        s[col[i]].insert(p[i]);
    }
    for(int i=1;i<=m;i++)
    {
        auto it=s[i].end();it--;
        summax+=*it;smax.insert(*it);
        if(s[i].size()>=2) it--,semax.insert(*it);
    }
    printans();
    for(int i=1;i<=q;i++)
    {
        int op=re(),pos=re(),z=re();
        if(op==1)
        {
            int c=col[pos];
            {
                auto it=s[c].end();it--;
                summax-=*it;auto it2=smax.lower_bound(*it);smax.erase(it2);
                if(s[c].size()>=2) it--,it2=semax.lower_bound(*it),semax.erase(it2);
            }
            auto it=s[c].lower_bound(p[pos]);s[c].erase(it);
            {
                it=s[c].end();it--;
                summax+=*it;smax.insert(*it);
                if(s[c].size()>=2) it--,semax.insert(*it);
            }
            c=col[pos]=z;
            {
                it=s[c].end();it--;
                summax-=*it;auto it2=smax.lower_bound(*it);smax.erase(it2);
                if(s[c].size()>=2) it--,it2=semax.lower_bound(*it),semax.erase(it2);
            }
            s[c].insert(p[pos]);
            {
                it=s[c].end();it--;
                summax+=*it;smax.insert(*it);
                if(s[c].size()>=2) it--,semax.insert(*it);
            }
        }
        else if(op==2)
        {
            int c=col[pos];
            {
                auto it=s[c].end();it--;
                summax-=*it;auto it2=smax.lower_bound(*it);smax.erase(it2);
                if(s[c].size()>=2) it--,it2=semax.lower_bound(*it),semax.erase(it2);
            }
            auto it=s[c].lower_bound(p[pos]);s[c].erase(it);
            p[pos]=z;
            s[c].insert(p[pos]);
            {
                it=s[c].end();it--;
                summax+=*it;smax.insert(*it);
                if(s[c].size()>=2) it--,semax.insert(*it);
            }
        }
        printans();
    }
    return 0;
}