2017马鞍山市小学组市选最后一题

今天算是c++基础语言的最后一课,上了结构体这个神奇的东西,很好用。

做了一道题目,测了好多遍,总算AC,想要AC还是挺难的。

问题描述:

为了促进学生练习跳绳,某学校举行跳绳比赛,比赛规则为:每参赛者跳3次,按3次跳绳总数从高到低排名,如果3次跳绳总数相同,则按3次中跳的最多那次进行排序(从高到低),若还相同,则按出场顺序先后排序(先出场的排在前,后出场的排在后)。

【输入数据】
第一行一个整数n,表示共有n个人参加跳绳比赛;
以下n行,每行三个整数x y z,分别表示3次跳绳的个数,两数之间用一个空格隔开。
【输出数据】
输出n人排序后的出场序号(从1开始计数)和对应的跳绳总数。
每行两个整数,第1个整数表示出场序号,第2个整数表示对应的跳绳总数,两个整数之间用一个空格隔开。

【输入样例】
10
190 170 134
140 198 115
157 80 221
51 112 211
63 143 132
152 210 187
241 78 120
101 184 146
50 148 212
79 149 92


【输出样例】
6 549
1 494
3 458
2 453
7 439
8 431
9 410
4 374
5 338

代码如下:

结构体的确好写。

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct student{
	long  first,second,third,p,max;
	unsigned long sum;
}a[100001];
int comp(const student & a,const student & b)
{
	if (a.sum>b.sum) return 1;
	if (a.sum<b.sum) return 0;
	if (a.max>b.max) return 1;
	if (a.max<b.max) return 0;
	if (a.p<b.p) return 1;
	if (a.p>b.p) return 0; 
}
int n;
int main()
{
	freopen("skip.in","r",stdin);
	freopen("skip.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
	{
	   scanf("%lld%lld%lld",&a[i].first,&a[i].second,&a[i].third); 
		a[i].sum=a[i].first+a[i].second+a[i].third;
		a[i].p=i;
		if((a[i].first>a[i].second)&&(a[i].first>a[i].third)) a[i].max=a[i].first;
		if((a[i].second>a[i].first)&&(a[i].second>a[i].third)) a[i].max=a[i].second;
		if((a[i].third>a[i].second)&&(a[i].third>a[i].first)) a[i].max=a[i].third;
	}
	sort(a+1,a+n+1,comp);
	for(int i=1;i<=n;++i)
	{
		cout<<a[i].p<<' '<<a[i].sum<<endl;
	}
	fclose(stdin);fclose(stdout);
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2017游戏大厅大全,就在搜狗游戏大厅 2017火爆的网页游戏,就在搜狗游戏大厅点击下载游戏大厅, yxdt.sogou.com · 2018-1-27 · 搜狗广告 矩阵取数游戏 - Vijos 描述 帅帅经常更同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij据为非负整数。游戏规则如下: 1. 每次取数时须从每行各取走一个元素,共n个。 https://vijos.org/p/1378 p1378 - Vijos 矩阵取数游戏 (game.pas/c/cpp) 【问描述】 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则 ... https://vijos.org/discuss/5109fde44e4112501400074b 2009-9-15 错别字 - Vijos #论字打的快的后果 帅帅经常**更同学**玩一个矩阵取数游戏:对于一个给定的n×m的矩阵,矩阵中的每个元素aij**据为**非负整数。 更同学->跟同学 据为非负 ... https://vijos.org/discuss/57c2840f17f3ca4a05f6a0ad 2016-8-28 我知道估计没人解答,我自己看了都长的程序 - Vijos 矩阵取数游戏 登录后创建讨论 查看目 登录后递交 讨论 解 信息 ID 1378 难度 6 分类 动态规划 | 高精度 点击显示 标签 NOIP 2007 提高组 递交数 4072 已通过 956 23% ... https://vijos.org/discuss/5109fddf4e411250140003d0 2009-7-12 难得过了,简单的栽了。请指点! - Vijos / Vijos / 讨论 / 矩阵取数游戏 / 难得过了,简单的栽了。请指点! 矩阵取数游戏 Lemon tree LV 8 @ 2009-07-27 18:34:33 编译通过... ├ 测试数据 01 ... https://vijos.org/discuss/5109fde04e4112501400049d 2009-7-27 讨论 - Vijos

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值