nefu1481题 谁考了第k名排序
#include
using namespace std;
struct sa
{
int id;
double cj;
}a[200];
int cmp(const struct sa &a,const struct sa &b)
{
return a.cj>b.cj;
}
int main()
{
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i].id>>a[i].cj;
}
sort(a+1,a+1+n,cmp);
printf("%d %g\n",a[k].id,a[k].cj);
return 0;
}
nefu1482题 奇数单增序列
#include
using namespace std;
int cmp(const int&j,const int&u)
{
return j<u;
}
int main()
{
int n,i,k,j,a[502],b[502];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0,j=0;i<n;i++)
{
if(a[i]%2!=0)
{
b[j]=a[i];
j++;
}
k=j;
}
sort(b,b+k,cmp);
for(i=0;i<k;i++)
{
if(i<k-1)
{
printf("%d,",b[i]);
}
if(i==k-1)
{
printf("%d",b[i]);
}
}
return 0;
}
nefu1483 成绩排序
#include
using namespace std;
struct stu
{
char name[30];
int cj;
}a[22];
int cmp(const struct stu&m,const struct stu&b)
{
if(m.cj!=b.cj)
{
return m.cj>b.cj;
}
else
{
return strcmp(m.name,b.name)<0;
}
}
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
cin>>a[i].name>>a[i].cj;
}
sort(a,a+n,cmp);
for(j=0;j<n;j++)
{
printf("%s %d\n",a[j].name,a[j].cj);
}
return 0;
}
nefu1659 没必要的排序1
#include
using namespace std;
int cmp(const int&m,const int&b)
{
return m>b;
}
int main()
{
int n,k,a[1002],j,sum,i;
scanf("%d%d",&n,&k);
sum=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n,cmp);
for(j=0;j<k;j++)
{
sum=sum+a[j];
}
printf("%d",sum);
return 0;
}
nefu1650 没必要的排序2
#include
using namespace std;
const int maxn=1e7+10;
const int maxk=1e5+10;
int t[maxk];
int main()
{
int n,k,i,num,ans,x;
scanf("%d%d",&n,&k);
memset(t,0,sizeof(t));
for(i=1;i<=n;i++)
{
scanf("%d",&x);
t[x]++;
}
num=0;
ans=0;
for(i=1e5;i>=1;i--)
{
if(t[i]>0)
{
num=num+t[i];
ans=ans+t[i]*i;
}
if(num>=k)
{
ans=ans-(num-k)*i;
break;
}
}
printf("%d\n",ans);
return 0;
}
nefu554 老和尚的导员
#include
using namespace std;
struct stu
{
int cyycj,xdcj,gscj,yycj;
int sum;
int bianhao;
}a[102];
bool cmp(const struct stu&e,const struct stu&f)
{
if(e.sum!=f.sum)
{
return e.sum>f.sum;
}
else
{
if(e.cyycj!=f.cyycj)
{
return e.cyycj>f.cyycj;
}
else
{
if(e.xdcj!=f.xdcj)
{
return e.xdcj>f.xdcj;
}
else
{
if(e.gscj!=f.gscj)
{
return e.gscj>f.gscj;
}
else
{
return e.yycj>f.yycj;
}
}
}
}
}
int main()
{
int i,n;
while(scanf("%d",&n)!=-1)
{
for(i=0;i<n;i++)
{
cin>>a[i].cyycj>>a[i].xdcj>>a[i].gscj>>a[i].yycj;
a[i].sum=a[i].cyycj+a[i].xdcj+a[i].gscj+a[i].yycj;
a[i].bianhao=i+1;
}
sort(a,a+n,cmp);
for(i=0;i<n;i++)
{
printf("%d %d\n",a[i].bianhao,a[i].sum);
}
}
return 0;
}
nefu556 健忘的老和尚
#include
using namespace std;
struct stu
{
char name[100];
int cj;
}a[1001];
bool cmp(const struct stu&e,const struct stu&f)
{
return e.cj<f.cj;
}
int main()
{
int n,m,o,i;
while(scanf("%d%d%d",&n,&m,&o)!=-1)
{
for(i=0;i<n;i++)
{
cin>>a[i].name>>a[i].cj;
}
sort(a,a+n,cmp);
for(i=n-m;i<n;i++)
{
printf("%s\n",a[i].name);
}
for(i=0;i<o;i++)
{
printf("%s\n",a[i].name);
}
}
return 0;
}
nefu873 戏说三国
#include
using namespace std;
struct stu
{
char name[30];
int zy;
int dy;
int wy;
double sum;
}a[100001];
bool cmp(const struct stu&e,const struct stu&f)
{
if(e.sum!=f.sum)
{
return e.sum>f.sum;
}
else
{
if(e.zy!=f.zy)
{
return e.zy>f.zy;
}
else
{
if(e.dy!=f.dy)
{
return e.dy>f.dy;
}
else
{
return e.wy>f.wy;
}
}
}
}
int main()
{
int t,I,n,j,i;
double m,b,c;
while(scanf("%d",&t)!=-1)
{
for(I=1;I<=t;I++)
{
scanf("%d%lf%lf%lf",&n,&m,&b,&c);
for(i=0;i<n;i++)
{
cin>>a[i].name>>a[i].zy>>a[i].dy>>a[i].wy;
a[i].sum=(a[i].zy*b*0.01+a[i].dy*m*0.01+a[i].wy*0.01*c)*1.0;
}
sort(a,a+n,cmp);
printf("Case #%d:\n",I);
for(j=0;j<n;j++)
{
printf("%s %.4lf %.4lf %.4lf %.4lf\n",a[j].name,a[j].sum,a[j].zy*b*0.01,a[j].dy*m*0.01,a[j].wy*c*0.01);
}
}
}
return 0;
}
nefu874 相约摩洛哥
#include
using namespace std;
struct stu
{
char name[12];
int ta;
int tb;
int tc;
int ca,cb,cc;
int zcs;
int cj;
}a[100001];
bool cmp(const struct stu&e,const struct stu&f)
{
if(e.zcs!=f.zcs)
{
return e.zcs>f.zcs;
}
else
{
return e.cj<f.cj;
}
}
int main()
{
int n,i;
while(scanf("%d",&n)!=-1)
{
for(i=0;i<n;i++)
{
cin>>a[i].name>>a[i].ta>>a[i].tb>>a[i].tc;
}
for(i=0;i<n;i++)
{
a[i].zcs=0;
a[i].cj=0;
cin>>a[i].ca>>a[i].cb>>a[i].cc;
if(a[i].ta!=-1)
{
a[i].cj=a[i].cj+a[i].ta+(a[i].ca-1)*20;
a[i].zcs++;
}
if(a[i].tb!=-1)
{
a[i].cj=a[i].cj+a[i].tb+(a[i].cb-1)*20;
a[i].zcs++;
}
if(a[i].tc!=-1)
{
a[i].cj=a[i].cj+a[i].tc+(a[i].cc-1)*20;
a[i].zcs++;
}
}
sort(a,a+n,cmp);
for(i=0;i<n;i++)
{
printf("%s %d %d\n",a[i].name,a[i].zcs,a[i].cj);
}
}
return 0;
}
nefu1297 结构体排序题1
#include
using namespace std;
struct stu
{
int hzb;
int zzb;
}a[102];
bool cmp1(const struct stu&e,const struct stu&f)
{
if(e.hzb!=f.hzb)
{
return e.hzb>f.hzb;
}
else
{
return e.zzb>f.zzb;
}
}
bool cmp2(const struct stu&e,const struct stu&f)
{
if(e.hzb!=f.hzb)
{
return e.hzb>f.hzb;
}
else
{
return e.zzb<f.zzb;
}
}
bool cmp3(const struct stu&e,const struct stu&f)
{
if(e.hzb!=f.hzb)
{
return e.hzb<f.hzb;
}
else
{
return e.zzb>f.zzb;
}
}
bool cmp4(const struct stu&e,const struct stu&f)
{
if(e.hzb!=f.hzb)
{
return e.hzb<f.hzb;
}
else
{
return e.zzb<f.zzb;
}
}
int main()
{
int x,y,n,i;
while(scanf("%d%d%d",&x,&y,&n)!=-1)
{
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i].hzb,&a[i].zzb);
}
if(x==0&&y==0)
{
sort(a,a+n,cmp1);
}
if(x==0&&y==1)
{
sort(a,a+n,cmp2);
}
if(x==1&&y==0)
{
sort(a,a+n,cmp3);
}
if(x==1&&y==1)
{
sort(a,a+n,cmp4);
}
for(i=0;i<n;i++)
{
printf("(%d,%d)\n",a[i].hzb,a[i].zzb);
}
}
return 0;
}
今天就到这里啦~