PAT-L2-009(抢红包)
2018-03-11 10:50
357 查看
题目链接:https://www.patest.cn/contests/gplt/L2-009
内存限制 65536 kB
代码长度限制 8000 B
判题程序 Standard 作者 陈越
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(<= 104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:K N1 P1 ... NK PK其中K(0 <= K <= 20)是发出去的红包个数,Ni是抢到红包的人的编号,Pi(> 0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。输出格式:按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。每个人的信息占一行,两数字间有1个空格。如果收入金额有并列,则按抢到红包的个数递减输出;如果还有并列,则按个人编号递增输出。输入样例:
L2-009. 抢红包
时间限制 300 ms内存限制 65536 kB
代码长度限制 8000 B
判题程序 Standard 作者 陈越
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(<= 104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:K N1 P1 ... NK PK其中K(0 <= K <= 20)是发出去的红包个数,Ni是抢到红包的人的编号,Pi(> 0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。输出格式:按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。每个人的信息占一行,两数字间有1个空格。如果收入金额有并列,则按抢到红包的个数递减输出;如果还有并列,则按个人编号递增输出。输入样例:
10 3 2 22 10 58 8 125 5 1 345 3 211 5 233 7 13 8 101 1 7 8800 2 1 1000 2 1000 2 4 250 10 320 6 5 11 9 22 8 33 7 44 10 55 4 2 1 3 8800 2 1 23 2 123 1 8 250 4 2 121 4 516 7 112 9 10输出样例:
1 11.63 2 3.63 8 3.63 3 2.11 7 1.69 6 -1.67 9 -2.18 10 -3.26 5 -3.26 4 -12.32思路:简单的模拟题,加上一个结构体排序,1遍过~上代码:
#include<cstdio> #include<cstdlib> #include<vector> #include<queue> #include<algorithm> #include<set> #include<cmath> #include<string> #include<cstring> using namespace std; typedef struct { int id; int ci; double m; } P; P p[10010]; bool cmp(P a,P b) { if(a.m>b.m) return true; else if(a.m==b.m) { if(a.ci>b.ci) return true; if(a.ci<b.ci) return false; if(a.ci==b.ci) return a.id<b.id; } else return false; } int main() { int i; int n; int num; double money; scanf("%d",&n); for(i=1;i<=n;i++) { int k; double sum=0; p[i].i ca39 d=i; scanf("%d",&k); for(int j=1;j<=k;j++) { scanf("%d%lf",&num,&money); p[num].m+=money; p[num].ci++; sum+=money; } p[i].m-=sum; } sort(p+1,p+n+1,cmp); for(i=1;i<=n;i++) printf("%d %.2lf\n",p[i].id,p[i].m/100); return 0; }
相关文章推荐
- L2-009. 抢红包-PAT团体程序设计天梯赛GPLT
- PAT ~ L2-009. 抢红包 (模拟,结构体排序)
- PAT(天梯赛练习题) -L2-009. 抢红包
- PAT 团体程序设计天梯赛-练习集 L2-009. 抢红包
- PAT 天梯赛 L2-009. 抢红包 【排序】
- PAT L2-009 抢红包【快排】
- Pat天梯练习L2-009. 抢红包 java实现
- PAT L2-009 抢红包
- PAT L2-009. 抢红包
- PAT L2——009. 抢红包
- PAT 团体程序设计天梯赛 L2-009 抢红包
- L2-009. 抢红包
- L2-009. 抢红包
- L2-009. 抢红包
- L2-009. 抢红包
- L2-009. 抢红包 结构体排序
- L2-009. 抢红包
- L2-009. 抢红包
- L2-009. 抢红包
- L2-009. 抢红包