九度题目1346:会员积分排序

题目1346:会员积分排序
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:835
解决:350

题目描述:
元旦佳节快到了,超市A想要给会员一些奖品。但是奖品有限,所以它需要给这些会员做一个排序,然后将名单输出来。排序的规则是,先按积分排序,如果会员的积分相同则按他的ID排序,因为ID号小则表示他注册的时间早。
现在某超市有每个会员的ID(ID保证不重复)、积分,它想要请你帮忙给排个序。

输入:
输入有多组数据。
每组第一行输入n(1<=n<=1000),m(1<=m<=50),n表示会员个数,m表示奖品个数;之后N行分别是两个整数id和s,id为这个会员的ID,s代表了这个会员的积分。

输出:
对每组输入输出min(m,n)个获奖的会员ID(按积分降序输出,如果积分相同按ID升序输出),每个会员ID一行。

样例输入:
5 3
1 5
2 10
3 3
4 20
5 2

样例输出:
4
2
1

、、、sort排序

AC代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node
{
 int id,vlaue;
}a[1100];
int cmp(node x,node y)
{
 if(x.vlaue!=y.vlaue) return x.vlaue>y.vlaue;
 if(x.id!=y.id) return x.id<y.id;
}
int main()
{
 int i,j,n,m,sum;
    while(scanf("%d %d",&n,&m)!=EOF)
 {
  for(i=0;i<n;i++)
   scanf("%d %d",&a[i].id,&a[i].vlaue);
  sort(a,a+n,cmp);
  for(i=0;i<(n<m?n:m);i++)//n和m的大小问题要考虑
   printf("%d\n",a[i].id);
 }
 return 0;
}
时间: 2024-08-29 08:53:27

九度题目1346:会员积分排序的相关文章

九度题目1120:全排列

题目1120:全排列  时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2749 解决:669 题目描述: 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列. 输入: 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间. 输出: 输出这个字符串的所有排列方式,每行一个排列.要求字母序比较小的排列在前

九度题目1110:小白鼠排队

题目1110:小白鼠排队 时间限制:1 秒内存限制:32 兆特殊判题:否提交:1348解决:820 题目描述: N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子.现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色.帽子的颜色用"red","blue"等字符串来表示.不同的小白鼠可以戴相同颜色的帽子.白鼠的重量用整数表示. 输入: 多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目. 下面有N行

九度题目1324:The Best Rank

题目1324:The Best Rank 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:414 解决:107 题目描述: To evaluate the performance of our first year CS majored students, we consider their grades of three courses only: C - C Programming Language, M - Mathematics (Calculus or Linear Algr

九度题目1339:ACM

题目1339:ACM(25分) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:599 解决:315 题目描述: 今年的ACM世界总决赛快要开始了,需要有一个排名算法来对每支队伍进行现场排名. ACM组委会把这个任务交给了你,相信你一定能很好地完成.  排名规则如下:通过题的数目多的队伍排名靠前,如果有多支队伍过的题的数目相同 ,则罚时少的队伍排名靠前. 输入: 输入的第一行包括一个整数N(1<=N<=100),代表参加比赛的队伍的个数.  接下来的N行每行包括一个字符串和两个整数n

九度题目1107:搬水果

题目1107:搬水果 时间限制:1 秒内存限制:32 兆特殊判题:否提交:3463解决:1081 题目描述:     在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的 水果合成一堆.每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和.当然经 过 n‐1 次合并之后,就变成一堆了.小明在合并水果时总共消耗的体力等于每次合并所耗体力之和.     假定每个水果重量都为 1,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的

九度题目1449:确定比赛名次

题目1449:确定比赛名次 时间限制:1 秒内存限制:128 兆特殊判题:否提交:669解决:293 题目描述: 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前.现在请你编程序确定排名. 输入: 输入有若干组,每组中的第一行为二个数N(1<=N<=500),M:其中N表示队伍

九度题目1188:约瑟夫环

题目1188:约瑟夫环 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1500 解决:665 题目描述:     N个人围成一圈顺序编号,从1号开始按1.2.3......顺序报数,报p者退出圈外,其余的 人再从1.2.3开始报数,报p的人再退出圈外,以此类推.     请按退出顺序输出每个退出人的原序号. 输入: 包括一个整数N(1<=N<=3000)及一个整数p. 输出: 测试数据可能有多组,对于每一组数据, 按退出顺序输出每个退出人的原序号. 样例输入: 7 3 样例输出:

九度题目1008:最短路径问题

题目1008:最短路径问题 时间限制:1 秒内存限制:32 兆特殊判题:否提交:5129解决:1634 题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花 费,如果最短距离有多条路线,则输出花费最少的. 输入: 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p. 最后一行是两个数 s,t;起点s,终点t.n和m为0时输入结束. (1n=1000, 0m100000,

九度题目1009:二叉搜索树

题目1009:二叉搜索树 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4308 解决:1919 题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树. 接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树. 输出: 如果序列相同则输出YES