PAT The World's Richest

The World‘s Richest

直白的排序题   难得的一次AC

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 typedef struct
 5 {
 6     char name[10] ;
 7     int age;
 8     int worth;
 9 } people;
10 people p[100000];
11 int N,K;
12 int M,amin,amax,flag;
13 void search(int m,int min,int max )
14 {
15     int j,count=0;
16     for(j=0;j<N;j++)
17     {
18         if(p[j].age>=min&&p[j].age<=max)
19         {
20             printf("%s %d %d\n",p[j].name,p[j].age,p[j].worth);
21             count++;
22             flag=1;
23         }
24         if(count==m)
25             break;
26     }
27 }
28 int cmp( const void *a , const void *b)
29 {
30     people *c = (people *)a;
31     people *d = (people *)b;
32     if(d->worth!= c->worth) return (d->worth-c->worth);
33     else if(c->age !=d->age) return (c->age-d->age);
34     else return strcmp((*c).name,(*d).name);
35 }
36 main(){
37     scanf("%d%d",&N,&K);
38     int i;
39     for(i=0;i<N;i++)
40     {
41         scanf("%s %d %d",p[i].name,&p[i].age,&p[i].worth);
42     }
43     qsort(p,N,sizeof(people),cmp);
44     for(i=1;i<=K;i++)
45     {
46         scanf("%d%d%d",&M,&amin,&amax);
47         printf("Case #%d:\n",i);
48         search(M,amin,amax);
49         if(flag==0)
50             printf("None\n");
51         flag=0;
52     }
53 }

PAT The World's Richest

时间: 2024-09-29 22:29:43

PAT The World's Richest的相关文章

PAT:1055. The World&#39;s Richest (25) AC

#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct Person { char name[10]; int age,money; }P[100010]; bool cmp(Person a,Person b) { if(a.money!=b.money) return a.money>b.money; else if(a.age!=b.age) r

PAT (Advanced Level) 1055. The World&#39;s Richest (25)

排序.随便加点优化就能过. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> #include<cstdio> #include<map> #include<queue> #include<string> #include<stack> #include<vector> using names

PAT 1055 The World&#39;s Richest

#include <cstdio> #include <cstdlib> #include <cstring> #include <vector> #include <queue> #include <algorithm> using namespace std; #define AGE_MAX 200 class People { public: char name[9]; int worth; int age; int idx;

PAT Advanced 1055 The World&#39;s Richest (25分)

Forbes magazine publishes every year its list of billionaires based on the annual ranking of the world's wealthiest people. Now you are supposed to simulate this job, but concentrate only on the people in a certain range of ages. That is, given the n

PAT 1009 说反话 C语言

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello 1 #include<stdio.h> 2 #

PAT 1006 换个格式输出 C语言

让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出格式:每个测试用例的输出占一行,用规定的格式输出n. 输入样例1: 234 输出样例1: BBSSS1

俺也晒晒pat代码!

最近在练习pat,很多题目不是很好做,一直找不到思路.通过google题目名称可以找到很多前辈的做题记录,这极大的方便了后来者.在此默默谢谢他们! 不过这同时也带了一些问题,有些前辈可能是急于出结果,所以使用了非常麻烦的方法把题目做出来了,有些后来者不经思考草草学习了就也这么做了...俺觉得这不应当是刷题所追求的目标,俺觉得既然练习旧的题目就应当追求超越前人,多想想有没有更巧妙,更简便的方法.否则科学技术也就停滞不前了... 不过俺又想了想或许很多“大牛”的确使用了简单的方法,只是他们没有时间或

pat 1068 动态规划/Fina More Conis

1068. Find More Coins (30) Eva loves to collect coins from all over the universe, including some other planets like Mars. One day she visited a universal shopping mall which could accept all kinds of coins as payments. However, there was a special re

PAT甲级1005 Spell It Right

题目:PAT甲级 1005 题解:水题.看到题目的第一时间就在想一位一位的mod,最后一加一转换就完事了.结果看到了N最大为10的100的次方,吓得我赶紧放弃这个想法... 发现碰到这种情况用字符串十分好用,这道题应该考察的就是这一点.大致思路就是把数字的每一位放到字符串中,然后通过ASCII码得到每一位的相加结果num,然后把num一位一位的放到stack中,使用stack是因为它先进先出的特性,最后输出就行了. 代码: 1 #include<cstdio> 2 #include<qu