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