题解
2026-08-01 21:44:12
发布于:江苏
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
struct ndd{
int f;//口
int s;//美
}a[300005];
bool cmp(ndd x,ndd y){
return x.s>y.s;
}
int main(){
int n,max=0,sum;cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].f>>a[i].s;
}
sort(a+1,a+1+n,cmp);
if(a[1].f==a[2].f){
for(int i=2;i<=n;i++){
if(a[i].f!=a[1].f){
max=a[i].s+a[1].s;
break;
}
}
if(max>a[1].s+a[2].s/2){
cout<<max;
}
else{
cout<<a[1].s+a[2].s/2;
}
}
else cout<<a[1].s+a[2].s;
return 0;
}
这里空空如也







有帮助,赞一个