1059 C语言竞赛(JAVA)

简介: C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:

 

C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:

    • 0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。
    • 1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!
    • 2、其他人将得到巧克力。

    给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。

    输入格式:

    输入第一行给出一个正整数 N(≤104),是参赛者人数。随后 N 行给出最终排名,每行按排名顺序给出一位参赛者的 ID(4 位数字组成)。接下来给出一个正整数 K 以及 K 个需要查询的 ID。

    输出格式:

    对每个要查询的 ID,在一行中输出 ID: 奖品,其中奖品或者是 Mystery Award(神秘大奖)、或者是 Minion(小黄人)、或者是 Chocolate(巧克力)。如果所查 ID 根本不在排名里,打印 Are you kidding?(耍我呢?)。如果该 ID 已经查过了(即奖品已经领过了),打印 ID: Checked(不能多吃多占)。

    输入样例:

    6
    1111
    6666
    8888
    1234
    5555
    0001
    6
    8888
    0001
    1111
    2222
    8888
    2222

    image.gif

    输出样例:

    8888: Minion
    0001: Chocolate
    1111: Mystery Award
    2222: Are you kidding?
    8888: Checked
    2222: Are you kidding?

    image.gif

    代码实现:

    import java.io.*;
    import java.util.HashMap;
    /**
     * @author yx
     * @date 2022-07-23 12:14
     */
    public class Main {
        static PrintWriter out=new PrintWriter(System.out);
        static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
        static StreamTokenizer in=new StreamTokenizer(ins);
        public static void main(String[] args) throws IOException {
            in.nextToken();
            int n=(int) in.nval;
            HashMap<String,Integer> map=new HashMap<>();
            HashMap<String,Integer> map1=new HashMap<>();
            for (int i = 0; i <n ; i++) {
                map.put(ins.readLine(),i+1);
            }
            in.nextToken();
            int m=(int) in.nval;
            for (int i = 0; i < m; i++) {
                String temp=ins.readLine();
                if(map1.containsKey(temp)){
                    out.println(temp+": Checked");
                    /*
                    这个地方是continue不是break
                    * */
                    continue;
                }
                if(map.containsKey(temp)){
                    map1.put(temp,1);
                    int k=map.get(temp);
                    if(k==1){
                        out.println(temp+": Mystery Award");
                    }else if(isPrime(k)){
                        out.println(temp+": Minion");
                    }else {
                        out.println(temp+": Chocolate");
                    }
                }else {
                    out.println(temp+": Are you kidding?");
                }
            }
            out.flush();
        }
        static boolean isPrime(int n){
            for (int i = 2; i*i <=n ; i++) {
                if(n%i==0)return false;
            }
            return true;
        }
    }

    image.gif

    Tips:

    因为JAVA本身的局限性,所以超时两个点

    image.gif编辑

    相关文章
    |
    3月前
    |
    Java C语言
    用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
    用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
    45 0
    |
    3月前
    |
    Java C语言
    C语言实验——输出字符串-java
    C语言实验——输出字符串-java
    |
    10月前
    |
    算法 C语言 C++
    从C语言的使用转换到C++(上篇)——刷题、竞赛篇
    从C语言的使用转换到C++(上篇)——刷题、竞赛篇
    251 0
    |
    10月前
    |
    存储 测试技术 C语言
    【竞赛题目】木块(C语言详解)
    【竞赛题目】木块(C语言详解)
    47 0
    |
    11月前
    |
    算法 C语言
    算法竞赛入门【码蹄集新手村600题】(MT1240-1260)C语言(二)
    算法竞赛入门【码蹄集新手村600题】(MT1240-1260)C语言(二)
    182 0
    |
    11月前
    |
    算法 C语言
    算法竞赛入门【码蹄集新手村600题】(MT1240-1260)C语言(一)
    算法竞赛入门【码蹄集新手村600题】(MT1240-1260)C语言
    221 0
    |
    11月前
    |
    算法 C语言
    算法竞赛入门【码蹄集新手村600题】(MT1220-1240)C语言(二)
    算法竞赛入门【码蹄集新手村600题】(MT1220-1240)C语言(二)
    145 0
    |
    2月前
    |
    算法 Java C语言
    Java中的算法与C语言中的函数
    Java中的算法与C语言中的函数
    27 2
    |
    2月前
    |
    C语言
    1059 C语言竞赛 (20 分)
    1059 C语言竞赛 (20 分)
    |
    3月前
    |
    JavaScript Java 测试技术
    基于Java的数学竞赛网站的设计与实现(源码+lw+部署文档+讲解等)
    基于Java的数学竞赛网站的设计与实现(源码+lw+部署文档+讲解等)
    36 0