1055 The World‘s Richest (25 分)难度: 一般 / 知识点: 多关键字排序
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1055 The World‘s Richest (25 分)难度: 一般 / 知识点: 多关键字排序相关的知识,希望对你有一定的参考价值。
https://pintia.cn/problem-sets/994805342720868352/problems/994805421066272768
这里: 注意用scanf,printf。
有一个小细节就是string如何用 scanf读入呢? 我们可以用char[]来读入,最后用char[]给string赋值即可。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,t;
struct node
{
string name;
int old;
int rich;
}temp,people[N];
bool cmp(node a,node b)
{
if(a.rich==b.rich)
{
if(a.old==b.old)
return a.name<b.name;
return a.old<b.old;
}
return a.rich>b.rich;
}
int main(void)
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
char name[15];
scanf("%s%d%d",name,&temp.old,&temp.rich);
temp.name=name;
people[t++]=temp;
}
sort(people,people+n,cmp);
for(int k=1;k<=m;k++)
{
printf("Case #%d:\\n",k);
int cnt,minv,maxv; scanf("%d%d%d",&cnt,&minv,&maxv);
t=0;
for(int i=0;i<n;i++)
{
if(people[i].old>=minv&&people[i].old<=maxv)
printf("%s %d %d\\n",people[i].name.c_str(),people[i].old,people[i].rich),t++;
if(t==cnt) break;
}
if(!t) puts("None");
}
return 0;
}
以上是关于1055 The World‘s Richest (25 分)难度: 一般 / 知识点: 多关键字排序的主要内容,如果未能解决你的问题,请参考以下文章
1055 The World's Richest (25 分)
PAT Advanced 1055 The World's Richest (25分)
1055 The World's Richest (25分)