激励金(编程马拉松)

题目描述

可达鸭里的学生们越来越出色!为了表彰他们的努力和优秀表现,学校决定向期末成绩优秀的前五名学生发放激励金。每个学生在期末都有参加C++、Python和Scratch这三门课程的考试,并获得了相应的成绩。学校按照以下规则对学生进行排名:首先按照总分从高到低排序,如果两个学生的总分相同,则按照C++成绩从高到低排序;如果两个学生的总分和C++成绩都相同,则学号较小的学生排在前面。

输入描述

第一行为一个正整数n(n小于300,n大于等于5),表示参加评选的学生人数。
第2~n+1行,每行有三个数字,每个数字都在0~100之间。第j行的三个数字依次表示学生为j-1的学生的C++、Python、Scratch的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减一)。所给的数据都是正确的,不必检验

输出描述

共有5行,每行是两个用一个空格隔开的正整数,依次表示为5名学生的学号和总分。

样例

输入

10
78 44 40
91 91 83
98 51 54
61 88 33
77 46 83
76 93 67
66 68 61
76 35 69
68 79 36
90 90 84

输出

2 265
10 264
6 236
5 206
3 203
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
struct stud{
	int sum=0;
	int c,q,s;
	int num;
}stu[301];
bool cmp(stud a,stud b){
	if(a.sum>b.sum){
		return 1;
	}
	else if(a.sum==b.sum){
		if(a.c>b.c){
			return 1;
		}
		else if(a.c==b.c){
			if(a.num<b.num){
				return 1;
			}
			else{
				return 0;
			}
		}
		else{
			return 0;
		}
	}
	else{
		return 0;
	}
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>stu[i].c>>stu[i].q>>stu[i].s;
		stu[i].sum=stu[i].c+stu[i].q+stu[i].s;
		stu[i].num=i;
	}
	sort(stu+1,stu+1+n,cmp);
	for(int i=1;i<=5;i++){
		cout<<stu[i].num<<" "<<stu[i].sum<<endl;
	}
	return 0;
}

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
马拉松编程题目是一种挑战性的编程竞赛,要求参赛者在有限的时间内解决一系列复杂的编程问题。这些题目旨在测试参赛者的编程技能、算法思维和解决问题的能力。 在NOI(全国青少年信息学奥林匹克竞赛)中,编程马拉松题目非常有名。参赛者通常需要在一天内完成多个编程问题,每个问题的难度和复杂性都不同。这些题目可能涉及算法数据结构、动态规划、图论等各种领域。 参赛者在比赛开始时会收到一份题目清单,然后他们需要逐个解决各个问题。解题速度和准确性是评判参赛者成绩的重要指标。因为时间有限,参赛者需要在压力下迅速找到问题的解决方法,并编写高效的代码。 编程马拉松不仅考察了参赛者的编程技能,也考验了他们的团队合作能力。许多编程马拉松都是以小组形式进,每个小组的成员需要相互配合,合理分工,共同完成任务。 参加编程马拉松有助于提升参赛者的编程能力和解决问题的能力。通过面临各种难题和时间限制,参赛者能够锻炼自己的思维能力和解决问题的方法。此外,参加编程马拉松还能与其他优秀的编程爱好者交流、学习,扩展自己的知识和视野。 总之,编程马拉松是一种激动人心的编程竞赛,可以帮助参赛者提升编程能力和解决问题的能力。这种比赛不仅考察了编程技能,还培养了团队合作和应对压力的能力,对于对编程有兴趣的人来说是一次难得的学习和锻炼机会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值