JavaStudy——0056:竞赛评分

总时间限制: 1000ms 内存限制: 65536kB

描述
现举行一次小竞赛,参赛的3支队伍,编号为1,2,3.每支队列轮流回答问题,如果回答正确,加10分;回答错误,扣10分;放弃回答不得分.经过多轮答题后,我们要统计各队的名次和得分.

输入
第一行为回答问题的轮次数n.
其余各行分别为1,2,3号队伍答题的结果,回答正确为right,错误为wrong,放弃为give-up.
输出
按名次输出各队的编号和得分.名次相同的在同一行输出,且编号小者靠前.

样例输入

4
right wrong give-up
right right right
wrong right right
right right right

样例输出

(3,30)
(1,20)(2,20)

Accepted代码

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();in.nextLine();
        P[] p=new P[3];
        for (int i=0;i<3;i++)  
            p[i]=new P(i+1,0);
        for (int i=0;i<n;i++) {
            for (int j=0;j<3;j++) {
                String s=in.next();
                if(s.equals("right"))
                    p[j].a+=10;
                else if(s.equals("wrong"))
                    p[j].a-=10;
            }
        }
        Arrays.sort(p,new MyComprator());
        for (int i=0;i<3;i++) {
            if(i+1<3&&p[i].a!=p[i+1].a)
                System.out.println("("+p[i].id+","+p[i].a+")");
            else
                System.out.print("("+p[i].id+","+p[i].a+")"); 
        }
        in.close();
    }
}
class P {
    int id,a;
    P(int id, int a) {
        this.id=id;
        this.a=a;
    }
}

class MyComprator implements Comparator<P> {
    public int compare(P t1, P t2) {
        if(t1.a==t2.a)
            return t1.id-t2.id;
        return t2.a-t1.a;
    }
}

你可能感兴趣的:(OpenJudge,-,javastudy)