编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。

现给定所有队员的比赛成绩,请你编写程序找出冠军队。

输入格式:

输入第一行给出一个正整数N(<=10000),即所有参赛队员总数。随后N行,每行给出一位队员的成绩,格式为:“队伍编号-队员编号 成绩”,其中“队伍编号”为1到1000的正整数,“队员编号”为1到10的正整数,“成绩”为0到100的整数。

输出格式:

在一行中输出冠军队的编号和总成绩,其间以一个空格分隔。注意:题目保证冠军队是唯一的。

输入样例:

6
3-10 99
11-5 87
102-1 0
102-3 100
11-9 89
3-2 61

输出样例:

11 176

下面两种方法都超时!!!
 package com.hone.basical;

 import java.util.Scanner;
/**
* 方法1
* 原题目:https://www.patest.cn/contests/pat-b-practise/1047
* @author Xia
* 下面利用简单一点的方法解决,在读取数据的同时将数据分了,将学校相同的学生的成绩加起来
* 时间复杂度为n
* 根据ID定位数据,建立以id为下标的数组
* 类似于:挖掘机技术哪家强
*/
public class basicalLevel1047programTeamGame { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] score = new int[1000];
int a;
int maxId = 0; //标记得分最高的队伍
for (int i = 0; i < n; i++) {
String str = in.nextLine();
String[] strNum = str.split("\\-|\\s");
a = Integer.parseInt(strNum[0]);
score[a] += Integer.parseInt(strNum[2]); //将a作为score数组的下标
if (score[a] > score[maxId]) {
maxId = a;
}
}
System.out.println(maxId+" "+score[maxId]);
}
}
 package com.hone.basical;

 import java.util.Scanner;
/**
* 这种方法较为麻烦,还是推荐第一种的用teamNum做下标
* 原题目:https://www.patest.cn/contests/pat-b-practise/1047
* @author Xia
*/
public class basicalLevel1047programTeamGame2 { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.nextLine());
int[] teamNum = new int[n];
int[] personNum = new int[n];
int[] score = new int[n];
int[] sum = new int[n];
int sumMax = 0;
int k = 0;
for (int i = 0; i < n; i++) {
String str = in.nextLine();
String[] strNum = str.split("\\-|\\s");
teamNum[i] = Integer.parseInt(strNum[0]);
personNum[i] = Integer.parseInt(strNum[1]);
score[i] = Integer.parseInt(strNum[2]);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (teamNum[i]==teamNum[j]) {
sum[i]+=score[j];
}
}
if (sumMax<sum[i]) {
sumMax = sum[i];
k = i;
}
}
System.out.println(teamNum[k]+" "+sumMax);
}
}
												

PAT——1047. 编程团体赛的更多相关文章

  1. PAT 1047 编程团体赛(代码)

    1047 编程团体赛(20)(20 分) 编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出 ...

  2. PAT 1047. 编程团体赛(20)

    编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...

  3. PAT 1047 编程团体赛

    https://pintia.cn/problem-sets/994805260223102976/problems/994805277163896832 编程团体赛的规则为:每个参赛队由若干队员组成 ...

  4. PAT 乙级 1047 编程团体赛(20) C++版

    1047. 编程团体赛(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 编程团体赛的规则为:每个参赛队由若 ...

  5. PAT-乙级-1047. 编程团体赛(20)

    1047. 编程团体赛(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 编程团体赛的规则为:每个参赛队由若 ...

  6. PAT乙级-1047. 编程团体赛(20)

    编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...

  7. PAT 乙级 1047.编程团体赛 C++/Java

    题目来源 编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行 ...

  8. PAT Basic 1047 编程团体赛 (20 分)

    编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...

  9. PAT (Basic Level) Practice (中文)1047 编程团体赛 (20 分)

    编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...

随机推荐

  1. lambda 表达式学习笔记

    在Java中传递一个代码段并不容易,不能直接传递代码段.Java是一个面向对象语言,所以必须构造一个对象,这个对象的类需要一个方法能包含所需的代码.lambda的出现有效的解决这个问题,让代码变得更加 ...

  2. select实现三级联动

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. Storage 的使用

    //是否不支持storage isNoStorage: function(){ if(typeof(Storage)=="function" || window.sessionSt ...

  4. 关于 webpack 跨域

    一.使用  http-proxy-middleware  代理 安装 http-proxy-middleware 依赖 在src 目录下 新建一个 setupProxy.js文件 // 引用依赖 va ...

  5. ArcGIS10.x Engine直连提示连接超时ORA-12170 来自:http://www.iarcgis.com/?p=1004

    导语 随着Esri大力宣传直连,用户也越来越由服务连接,改为直连,当然ArcGIS Engine开发用户也不例外. 环境 Oracle数据库,ArcGIS版本不限,不过由于9版本多以服务连接,以10版 ...

  6. How To Manage StartUp Applications In Ubuntu

    Ever felt the need to control startup applications in Ubuntu? You should, if you feel that your Ubun ...

  7. 实用爬虫-02-爬虫真正使用代理 ip

    实用爬虫-02-爬虫真正使用代理 ip 因为这里呢,是实用爬虫,想要仔细学习一些基础的,可以去查看: Python 爬虫教程:https://www.cnblogs.com/xpwi/category ...

  8. 路飞学城知识点3缓存知识点之一Djang自带的缓存

    缓存是暂时把数据放到哪儿的意思,用于提高查询的访问速度用的,mysql等关系型数据库通常用作备份,数据库进行增删改操作一段时间内存同步到缓存(非关系型数据库中) 缓存与内存的区别: 通常把数据放到内存 ...

  9. Linux修改Oracle用戶

    Linux下SSH登陆后: su - Oracle; sqlplus /nolog; conn system/密码; 或者 connect/as sysdba; alter user 用户名 iden ...

  10. 2.bootstrap安装

    1.下载 您可以从 http://getbootstrap.com/ 上下载 Bootstrap 的最新版本(或者 http://www.bootcss.com/  中文网) Download Boo ...