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