当前位置: 首页 > news >正文

7-9 天梯赛团队总分

“天梯赛”的竞赛题目一共有 15 道,分为 3 个梯级:

 基础级设 8 道题,其中 5 分、10 分、15 分、20 分的题各 2 道,满分为 100 分;题目编号相应为L1-XX取1,2,3,4,5,6,7,8,分别表示基础级的8道题,如L1-1表示基础级的第1题。

 进阶级设 4 道题,每道题 25 分,满分为 100 分;题目编号相应为L2-XX取1,2,3,4,分别表示进阶级的4道题,如L2-2表示进阶级的第2题。

 登顶级设 3 道题,每道题 30 分,满分为 90 分。题目编号相应为L3-XX取1,2,3,分别表示登顶级的3道题,如L3-2表示登顶级的第2题。

注:若对以上表述仍有不理解或者不清楚的,则请参考本套考题的题号与分值。

在我们校赛中,积分规则和正式天梯赛积分规则有些许不同,校赛的积分规则简化后如下:

  • 参赛者须独立按照严格的输入输出要求提交每一题的解题程序。程序须经过若干测试用例的测试,每个测试用例分配一定分数。每题的得分为通过的测试用例得分之和;整场比赛得分为各题得分之和。程序可反复提交,取最高分,提交错误不扣分。
  • 参赛者的个人总分由每题得分和先锋奖励组成。只有当该队员的基础题总分超过 60 分时,其进阶部分的题目分数(包括奖励)才被判为对其个人有效;当其进
    阶题总分超过 25 分时,其登顶部分的题目分数(包括奖励)才被判为对其个人有效。
  • 当一支参赛团队的基础题总分超过 300 分时,该队进阶部分的题目分数才被判为对团队有效;只有当其进阶题总分超过 125 分时,该队登顶部分的题目分数才被判为对团队有效。
  • 校赛中每个参赛团队由5名参赛者组成。

注:基础题是默认有效的。对个人/团队无效得分的部分视为0分。

 团队的基础题总分为所有队员在基础题的得分总和;

 团队的进阶题总分为所有队员在进阶题的得分总和;

 团队的登顶题总分为所有队员在登顶题的得分总和。

当队员在进阶题或登顶题的得分对个人来说是无效时,但是这部分仍然计入团队进阶题和登顶题得分,只有当团队基础题得分/进阶题得分达到了进阶条件,团队的进阶题得分/登顶题得分才能被判定为对团队有效。


 在竞赛的过程中你和你的队友都如此沉迷,以至于你们都忘记看实时榜单,比赛结束后你们只能通过提交记录计算你们团队每个人的得分以及团队总得分。具有团队精神的你想要亲自编写程序来解决这个问题。

  • 天梯赛是善良的,同一道题你可以多次提交,该题最终得分为多次提交的最高分(参考样例1)。

  • 若有些题没有提交记录,即该题记做0分。

同样因为一股神秘力量(可能来自参赛团队本身 只有自己团队的提交记录),本题不考虑先锋奖励

输入格式:

输入第一行给出一个非负整数N(0<=N<200),表示提交记录的数量。

接下来N行,每行给出一条提交记录的详细情况,其格式为:队员编号 题目编号 分数。你们队员的编号依次为1,2,3,4,5

题目保证所有的提交记录只有你们团队的记录,不会出现其他队伍的记录;同时,同一道题可能有多次提交。

输出格式:

一共输出6行。

第1行输出团队总得分。

接下来5行输出团队5个人每个人的成绩,按总分由高到低的顺序。若总分相同,则优先输出编号较小者。

输入样例1:

5
1 L1-1 5
1 L1-1 3
1 L1-1 4
1 L1-1 2
1 L1-1 1
 

 输出样例1:

5
1 5
2 0
3 0
4 0
5 0
 

 输入样例2:

22
1 L1-8 20
1 L1-7 20
1 L1-6 15
1 L1-5 15
2 L1-8 20
2 L1-7 20
2 L1-6 15
2 L1-5 15
3 L1-8 20
3 L1-6 15
3 L1-5 15
4 L1-8 20
4 L1-7 20
4 L1-6 15
4 L1-5 15
4 L1-4 10
4 L1-3 10
1 L1-4 10
1 L1-3 10
1 L1-2 5
5 L2-1 25
5 L2-2 25
 

 输出样例2:

355
1 95
4 90
2 70
3 50
5 0
 

样例解释2:

5号队员虽然进阶题得到50分,但是他基础题得分为0,所以,对于5号队员个人来说,他的最后总得分为0;对于整个团队来说,团队的基础题部分得分为305,达到了进阶条件;5号选手在进阶部分的得分可以计入团队的进阶部分得分,所以团队最后的总得分为355。接下来请继续你的快乐作答!

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int per_basic[6][9];//个人_基础题
int per_meddle[6][5];//个人_进阶题
int per_advanced[6][4];//个人_登顶题
int team_mark = 0;//团队_总分
int per_summark[6][2];//个人_总分struct node {int stu_number;char ques[10];int ques_mark;
};//所有成绩置零
void Zero_setting(void)
{int i;int j;for (i = 0; i < 6; i++){for (j = 0; j < 9; j++){per_basic[i][j] = 0;}for (j = 0; j < 5; j++){per_meddle[i][j] = 0;}for (j = 0; j < 4; j++){per_advanced[i][j] = 0;}for (j = 0; j < 2; j++){per_summark[i][j] = 0;}}
}//成绩更新
int Refresh(struct node node)
{int flag = 0;//判断此次是否进行了成绩更新int i;int j;int stu_number;//学生_序号int ques_rank;//问题_等级int ques_number;//问题_序号int ques_mark;//问题_成绩stu_number = node.stu_number;ques_mark = node.ques_mark;ques_rank = node.ques[1] - '0';ques_number = node.ques[3] - '0';//判断 问题__等级 if (ques_rank == 1){if (ques_mark > per_basic[stu_number][ques_number])//判断更新分数是否大于原分数{per_basic[stu_number][ques_number] = ques_mark;flag = 1;}}else if (ques_rank == 2){if (ques_mark > per_meddle[stu_number][ques_number]){per_meddle[stu_number][ques_number] = ques_mark;flag = 1;}}else if (ques_rank == 3){if (ques_mark > per_advanced[stu_number][ques_number]){per_advanced[stu_number][ques_number] = ques_mark;flag = 1;}}return flag;//返回此次是否更新
}//计算队伍总成绩并输出
void Total_print(void)
{int i;int j;int team_basic = 0;//团队_基础题int team_meddle = 0;//团队_进阶题int team_advanced = 0;//团队_登顶题//求团队的三种题目分数for (i = 1; i < 6; i++){for (j = 1; j < 9; j++){team_basic += per_basic[i][j];}}for (i = 1; i < 6; i++){for (j = 1; j < 5; j++){team_meddle += per_meddle[i][j];}}for (i = 1; i < 6; i++){for (j = 1; j < 4; j++){team_advanced += per_advanced[i][j];}}//判断进阶题和登顶题是否分数有效,再求和等于团队总分if (team_basic < 300){team_meddle = 0;}if (team_meddle < 125){team_advanced = 0;}team_mark = team_basic + team_meddle + team_advanced;//输出团队总分printf("%d\n", team_mark);}//计算个人总成绩并输出
void Per_print(void)
{int i;int j;int per_basic_sum[6];//个人_基础题_总分int per_meddle_sum[6];//个人_进阶题_总分int per_advanced_sum[6];//个人_登顶题_总分int per_summark_print[6][2];//个人_总分_输出([i][0]为序号,[i][1]为成绩)//置零for (i = 0; i < 6; i++){per_basic_sum[i] = 0;per_meddle_sum[i] = 0;per_advanced_sum[i] = 0;	}//计算每个学生的三种题目总分for (i = 1; i < 6; i++){for (j = 1; j < 9; j++){per_basic_sum[i] += per_basic[i][j];}for (j = 1; j < 5; j++){per_meddle_sum[i] += per_meddle[i][j];}for (j = 1; j < 4; j++){per_advanced_sum[i] += per_advanced[i][j];}}//判断学生个人进阶题和登顶题分数是否有效for (i = 1; i < 6; i++){if (per_basic_sum[i] < 60){per_meddle_sum[i] = 0;}if (per_meddle_sum[i] < 25){per_advanced_sum[i] = 0;}}//计算学生个人成绩对应学号存入per_summark以及per_summark_printfor (i = 1; i < 6; i++){per_summark[i][0] = i;per_summark[i][1] = per_basic_sum[i] + per_meddle_sum[i] + per_advanced_sum[i];per_summark_print[i][0] = per_summark[i][0];per_summark_print[i][1] = per_summark[i][1];}//对per_summark_print进行排序,冒泡排序,稳定for (i = 1; i < 6; i++){for (j = 1; j < 6 - i; j++){if (per_summark_print[j][1] < per_summark_print[j + 1][1]){int temp = per_summark_print[j][1];per_summark_print[j][1] = per_summark_print[j + 1][1];per_summark_print[j + 1][1] = temp;int temp1 = per_summark_print[j][0];per_summark_print[j][0] = per_summark_print[j + 1][0];per_summark_print[j + 1][0] = temp1;}}}//按题目要求输出个人成绩for (i = 1; i < 6; i++){if (i == 5)printf("%d %d", per_summark_print[i][0], per_summark_print[i][1]);elseprintf("%d %d\n", per_summark_print[i][0], per_summark_print[i][1]);}return;
}int main(void)
{int n;struct node node;Zero_setting();scanf("%d", &n);while (n--){scanf("%d %s %d", &node.stu_number, node.ques, &node.ques_mark);Refresh(node);}Total_print();Per_print();return 0;
}

http://www.xdnf.cn/news/837037.html

相关文章:

  • 新手入门级 | nodejs调试
  • My_blog个人博客系统
  • 谁动了你的HTTPS流量?
  • “古董级” 诺基亚功能机跑Linux是怎样的画风?
  • 还在用命令行看日志?快用Kibana吧,可视化日志分析YYDS!
  • spread spectrum 展频的工作原理
  • 云渲染如何使用?其实很简单,只需3步就搞定了!
  • Thinkpad(T420 + WIN7)驱动与软件的安装
  • eboot.php如何转成iso,如何转换成iso格式
  • C# Winform应用系统如何快速开发?看完这篇文章就懂了
  • 微信小程序开发(超详细保姆式教程)
  • 域名邮箱申请指南:从概念到实践的一站式解答
  • 小白学Linux之内核模块编程
  • 关于ASO优化刷榜、冲榜、维榜、锁榜科普百科
  • 快速入门:低代码开发APP软件的步骤详解
  • 浅入深出LC谐振电路
  • PHP 零基础初学者手册(二)
  • 西门子TP900精智系列触摸屏与菱Q系列PLC以太网通信的嵌入式组态步骤
  • 家庭财务管理系统APP(开题报告+源码)
  • 自学python真的可以学会吗?这位朋友的真实经历告诉你_python自学成功几率多大(1)
  • 易基因|m6A RNA甲基化研究的数据挖掘思路:干货系列
  • 阿里研究员:软件测试中的18个难题
  • SEO辅助工具大全,让网站优化事半功
  • 十款开源测试开发工具分享(自动化、性能、造数据、流量复制)
  • 苹果公司开发者账号申请流程
  • 移动端基础
  • Python TensorFlow框架 实现手写数字识别系统
  • 第三章 Ext框架基础及核心简介
  • win7 64位系统不支持curl解决办法
  • 莱佛士学生在Joo Chiat T恤设计比赛中获得最高奖项