java蓝桥暑假班_Java实现 蓝桥杯VIP 算法提高 班级排名
算法提高 班級排名
時(shí)間限制:1.0s 內(nèi)存限制:256.0MB
問題描述
達(dá)達(dá)在陶陶的影響下,也對學(xué)習(xí)慢慢的產(chǎn)生了興趣。
他在每次考試之后,都會(huì)追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,于是他給了達(dá)達(dá)所有人的成績,讓他自己去算出自己的排名。
可人太多了,達(dá)達(dá)也無法立即算出來,于是他想讓你幫幫他。
輸入格式
第一行為一個(gè)整數(shù)N,代表班級的學(xué)生總數(shù)。
接下來N行,每行一個(gè)字符串,代表一個(gè)學(xué)生的姓名,第一行總是DaDa。
接下來一行一個(gè)整數(shù)M,代表一共有M次考試。
每次考試有N行,每行有以一個(gè)空格分隔的一個(gè)正整數(shù)S和一個(gè)字符串P,代表名字為P的學(xué)生在這次考試中得了S分。
輸出格式
一共M行,每行一個(gè)整數(shù),代表達(dá)達(dá)在班級里的排名,排名是這一次考試過后的所有考試總分排名,如果達(dá)達(dá)和別人并列,達(dá)達(dá)總是排在前面。
樣例輸入
3
DaDa
A
B
2
49 DaDa
49 A
48 B
80 A
85 B
83 DaDa
【樣例輸出】
1
2
數(shù)據(jù)規(guī)模和約定
N <= 100,名字長度不超過30,分?jǐn)?shù)不超過100
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class 班級排名 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=Integer.parseInt(sc.nextLine());
String[] name=new String[n];
for (int i = 0; i < n; i++) {
name[i]=sc.nextLine();
}
int m=Integer.parseInt(sc.nextLine());
int[] score=new int[n];
int[] score1=new int[n];
int[] p=new int[m];
int DaDaScore=0;
Map map=new HashMap();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
String[] ss=sc.nextLine().split(" ");
if(map.get(ss[1])!=null){
score[j]=map.get(ss[1])+Integer.parseInt(ss[0]);
map.put(ss[1], score[j]);
}
else{
score[j]=Integer.parseInt(ss[0]);
map.put(ss[1], score[j]);
}
score1[j]=score[j];
if(ss[1].equals("DaDa")){
DaDaScore=score[j];
}
}
Arrays.sort(score1);
for (int j = score1.length-1; j >=0; j--) {
if(score1[j]==DaDaScore){
p[i]=n-j;
break;
}
}
}
for (int i = 0; i < p.length; i++) {
System.out.println(p[i]);
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java蓝桥暑假班_Java实现 蓝桥杯VIP 算法提高 班级排名的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 商洛看男性不育最好的医院推荐
- 下一篇: java jdbc连接db2数据库_Ja