java 金牌、银牌、铜牌

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        String[] name=new String[n];
        int[] score=new int[n];
        
        int i=0;
        for(i=0;i<n;i++)
        {
            name[i]=sc.next();
            score[i]=sc.nextInt();
        }
        
        while(sc.hasNext())
        {
            String x = sc.next();
            int flag=1;
            switch(x)
            {
                case "A":
                    int  t=0;
                    String u="a";
                    score=Arrays.copyOf(score, score.length+1);
                    name=Arrays.copyOf(name, name.length+1);
                    name[name.length-1]=sc.next();
                    score[score.length-1]=sc.nextInt();
                    for(i=name.length-1;i>0;i--)
                    {
                        if(score[i]>score[i-1])
                        {
                            t=score[i-1];score[i-1]=score[i];score[i]=t;
                            u=name[i-1];name[i-1]=name[i];name[i]=u;
                        }
                    }
                    break;
                    
                case "Q":
                    int l;
                    String qname = sc.next();
                    for(i=0;i<name.length;i++)
                    {
                        if(qname.equals(name[i])==true)
                        {
                            for(l=i;l<name.length-1;l++)
                            {
                                name[l]=name[l+1];
                                score[l]=score[l+1];
                            }
                        }
                    }
                    score=Arrays.copyOf(score, score.length-1);
                    name=Arrays.copyOf(name, name.length-1);
                    break;
                    
                case "C":
                    int h;
                    String aname = sc.next();
                    int add = sc.nextInt();
                    for(i=0;i<name.length;i++)
                    {
                        if(aname.equals(name[i])==true)
                        {
                            score[i]+=add;
                        }
                    }
                    for(h=i-1;h>0;h--)
                    {
                        if(score[h]>score[h-1])
                        {
                            t=score[h-1];score[h-1]=score[h];score[h]=t;
                            u=name[h-1];name[h-1]=name[h];name[h]=u;
                        }
                    }
                    break;
                    
                case "S":
                    for(i=0;i<name.length;i++)
                    {
                        System.out.println(name[i]+" "+score[i]);
                    }
                    break;
                    
                case "O":
                    int j=0, k=0, m=0;
                    flag=0;
                    System.out.print("#1 : "+name[j]);
                    j++;
                    while(true)
                    {
                        if(score[j]==score[k])
                        {
                            System.out.print(" "+name[j]);
                            j++;
                        }
                        else break;
                    }
                    System.out.println("");
                    System.out.print("#2 :");
                    for(m=2;m>0;m--)
                    {
                        k=j;
                        System.out.print(" "+name[j]);
                        j++;
                        while(true)
                        {
                            if(score[j]==score[k])
                            {
                                System.out.print(" "+name[j]);
                                j++;
                            }
                            else break;    
                        }
                    }
                    System.out.println();
                    System.out.print("#3 :");
                    for(m=3;m>0;m--)
                    {
                        k=j;
                        System.out.print(" "+name[j]);
                        j++;
                        while(true)
                        {
                            if(score[j]==score[k])
                            {
                                System.out.print(" "+name[j]);
                                j++;
                            }
                            else break;    
                        }
                    }
                    System.out.println();
                    break;
            }
            if(flag==0) break;
        }
        sc.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值