题目描述

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。

任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:

77 279279

55 279279

这两行数据的含义是:总分最高的两个同学的学号依次是77号、55号。这两名同学的总分都是 279279 (总分等于输入的语文、数学、英语三科成绩之和) ,但学号为77的学生语文成绩更高一些。如果你的前两名的输出数据是:

55 279279

77 279279

则按输出错误处理,不能得分。

输入输出格式

输入格式:

共n+1行。

第11行为一个正整数n( \le 300)n(≤300),表示该校参加评选的学生人数。

第22到n+1n+1行,每行有33个用空格隔开的数字,每个数字都在00到100100之间。第jj行的33个数字依次表示学号为j-1j−1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n1 n(恰好是输入数据的行号减11)。

所给的数据都是正确的,不必检验。

//感谢 黄小U饮品 修正输入格式

输出格式:

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

输入输出样例

输入样例#1:

6

90 67 80

87 66 91

78 89 91

88 99 77

67 89 64

78 89 98

输出样例#1:

6 265

4 264

3 258

2 244

1 237

输入样例#2:

8

80 89 89

88 98 78

90 67 80

87 66 91

78 89 91

88 99 77

67 89 64

78 89 98

输出样例#2:

8 265

2 264

6 264

1 258

5 258

  1. import java.util.Scanner;
  2. public class jiangxuejin2 {
  3. public static void main(String[] args) {
  4. Scanner r=new Scanner(System.in);
  5. int n=r.nextInt();
  6. int [][] a=new int[n][3];
  7. for (int i = 0; i < n; i++) {
  8. a[i][0]=i+1;
  9. a[i][1]=r.nextInt();
  10. int x=r.nextInt();
  11. int y=r.nextInt();
  12. a[i][2]=a[i][1]+x+y;
  13. }
  14. for (int i = 0; i < a.length-1; i++) {
  15. for (int j = i; j < a.length; j++) {
  16. if(a[i][2]>a[j][2])
  17. {
  18. int temp=a[i][0];
  19. a[i][0]=a[j][0];
  20. a[j][0]=temp;
  21. temp=a[i][1];
  22. a[i][1]=a[j][1];
  23. a[j][1]=temp;
  24. temp=a[i][2];
  25. a[i][2]=a[j][2];
  26. a[j][2]=temp;
  27. }
  28. }
  29. }
  30. for (int i = 0; i < a.length-1; i++) {
  31. for (int j = i; j < a.length; j++) {
  32. if(a[i][2]==a[j][2]&&a[i][1]>a[j][1])
  33. {
  34. int temp=a[i][0];
  35. a[i][0]=a[j][0];
  36. a[j][0]=temp;
  37. temp=a[i][1];
  38. a[i][1]=a[j][1];
  39. a[j][1]=temp;
  40. temp=a[i][2];
  41. a[i][2]=a[j][2];
  42. a[j][2]=temp;
  43. }
  44. }
  45. }
  46. for (int i = 0; i < a.length-1; i++) {
  47. for (int j = i; j < a.length; j++) {
  48. if(a[i][2]==a[j][2]&&a[i][1]==a[j][1]&&a[i][0]<a[j][0])
  49. {
  50. int temp=a[i][0];
  51. a[i][0]=a[j][0];
  52. a[j][0]=temp;
  53. temp=a[i][1];
  54. a[i][1]=a[j][1];
  55. a[j][1]=temp;
  56. temp=a[i][2];
  57. a[i][2]=a[j][2];
  58. a[j][2]=temp;
  59. }
  60. }
  61. }
  62. for (int i = a.length-1; i >a.length-6; i--) {
  63. System.out.println(a[i][0]+" "+a[i][2]);
  64. }
  65. }
  66. }

(Java实现)洛谷 P1093 奖学金的更多相关文章

  1. 洛谷 P1093 奖学金

    P1093 奖学金 题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相 ...

  2. 洛谷——P1093 奖学金

    P1093 奖学金 题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相 ...

  3. 洛谷 P1093 奖学金【三级结构体排序】

    题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高 ...

  4. (水题)洛谷 - P1093 - 奖学金

    https://www.luogu.org/problemnew/show/P1093 #include<bits/stdc++.h> using namespace std; #defi ...

  5. 洛谷P1093 奖学金

    https://www.luogu.org/problem/P1093 #include <bits/stdc++.h> using namespace std; struct Node{ ...

  6. Java实现 洛谷 Car的旅行路线

    输入输出样例 输入样例#1: 1 3 10 1 3 1 1 1 3 3 1 30 2 5 7 4 5 2 1 8 6 8 8 11 6 3 输出样例#1: 47.5 import java.util. ...

  7. Java实现 洛谷 P1738 洛谷的文件夹

    题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现. 洛谷的网页端,有很多文件夹,文件夹还套着文件夹. 例如:/luogu/application/c ...

  8. Java实现洛谷 P1428 小鱼比可爱

    题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...

  9. Java实现洛谷 P1007独木桥

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

随机推荐

  1. 记一次 spinor flash 读速度优化

    背景 某个项目使用的介质是 spinor, 其 bootloader 需要从 flash 中加载 os. 启动速度是一个关键指标,需要深入优化.其他部分的优化暂且略过,此篇主要记录对 nor 读速度的 ...

  2. JVM 运行时数据区(二)

    @ 目录 运行时数据区 共享区 堆区 方法区 隔离区 虚拟机栈 栈帧 本地方法栈 程序计数器 运行时数据区 JVM 运行时数据区主要分为5块 方法区 JDK1.8以后叫做元数据区(Metaspace) ...

  3. Web_php_unserialize-攻防世界XCTF

    0x00 简介 记录一下,重点是记录一下那篇正则文章. 0x01 题目代码 <?php class Demo { private $file = 'index.php'; public func ...

  4. AFNetworking 3.0 使用详解 和 源码解析实现原理

    AFN原理&& AFN如何使用RunLoop来实现的: 让你介绍一下AFN源码的理解,首先要说说封装里面主要做了那些重要的事情,有那些重要的类(XY题) 一.AFN的实现步骤: NSS ...

  5. jsp 中文乱码????解决

    中文乱码是个非常蛋疼的问题,在页面表单提交的时候后台获取数据变成了????,解决方案如下: 1:确认编码都是一致的如页面和后台都设置为utf-8 2:String str = new String(r ...

  6. Win10最常用的快捷键,效率Max提高100%(常用的应该是最全的)

    写在最前面 这是博主爆肝了一晚上给写出来,因为很多博客和资料中仍然使用的xp win7 和win8 的快捷键,我不断地的实验和尝试,总结出以下的快捷键,希望可以帮助到你. 最后,未经运营,爆肝博文不得 ...

  7. Winform GDI+ 绘图一:绘制2D电池

    winform桌面软件开发,在工业控制领域的使用还是很广泛的,打算好好学习一下GDI+绘图.以前都是用别人的轮子,自己也打算封装一些工业控制领域常用的控件. 今天要将的是,利用缓动函数动态绘制电池. ...

  8. 2.2 Go变量类型

    内置类型 值类型: bool 布尔类型 int(32 or 64), int8, int16, int32, int64 整数类型 uint(32 or 64), uint8(byte), uint1 ...

  9. Django路由配置之正则表达式详解

    正则表达式详解 urls.py from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles ...

  10. 王艳 201771010127《面向对象程序设计(java)》第二周学习总结

     王艳 201771010127<面向对象程序设计(java)>第二周学习总结 第一部分:理论知识学习部分 3.1:基本概念. 1)标识符:标识符由字母.数字.美元符号以及下划线组成.且第 ...