解题思路:
注意事项:
参考代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a0[N],a1[N],a2[N],a3[N],a4[N],a5[N],a6[N],a7[N],a8[N],a9[N];
int main()
{
int n,a,b,m;
cin>>n;
m=n/10;
long long s=0;
int x0=0,x1=0,x2=0,x3=0,x4=0,x5=0,x6=0,x7=0,x8=0,x9=0;
while(n--){
cin>>a>>b;
s+=(long long)b;
if(a==0)a0[++x0]=b;
else if(a==1)a1[++x1]=b;
else if(a==2)a2[++x2]=b;
else if(a==3)a3[++x3]=b;
else if(a==4)a4[++x4]=b;
else if(a==5)a5[++x5]=b;
else if(a==6)a6[++x6]=b;
else if(a==7)a7[++x7]=b;
else if(a==8)a8[++x8]=b;
else if(a==9)a9[++x9]=b;
}
if(x0)sort(a0+1,a0+1+x0);
if(x1)sort(a1+1,a1+1+x1);
if(x2)sort(a2+1,a2+1+x2);
if(x3)sort(a3+1,a3+1+x3);
if(x4)sort(a4+1,a4+1+x4);
if(x5)sort(a5+1,a5+1+x5);
if(x6)sort(a6+1,a6+1+x6);
if(x7)sort(a7+1,a7+1+x7);
if(x8)sort(a8+1,a8+1+x8);
if(x9)sort(a9+1,a9+1+x9);
while(m--){
if(x0!=0)s-=a0[x0--];
if(x1!=0)s-=a1[x1--];
if(x2!=0)s-=a2[x2--];
if(x3!=0)s-=a3[x3--];
if(x4!=0)s-=a4[x4--];
if(x5!=0)s-=a5[x5--];
if(x6!=0)s-=a6[x6--];
if(x7!=0)s-=a7[x7--];
if(x8!=0)s-=a8[x8--];
if(x9!=0)s-=a9[x9--];
}
cout<<s;
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复