• PAT(B) 1072 开学寄语(Java)统计


    题目链接:1072 开学寄语 (20 point(s))

    题目描述

    下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面、理发、整衣,然后思过、读书、锻炼、明智、开悟、精进。而后必成大器也!

    寄语
    本题要求你写个程序帮助这所学校的老师检查所有学生的物品,以助其成大器。

    输入格式

    输入第一行给出两个正整数 N(≤ 1000)和 M(≤ 6),分别是学生人数和需要被查缴的物品种类数。第二行给出 M 个需要被查缴的物品编号,其中编号为 4 位数字。随后 N 行,每行给出一位学生的姓名缩写(由 1-4 个大写英文字母组成)、个人物品数量 K(0 ≤ K ≤ 10)、以及 K 个物品的编号。

    输出格式

    顺次检查每个学生携带的物品,如果有需要被查缴的物品存在,则按以下格式输出该生的信息和其需要被查缴的物品的信息(注意行末不得有多余空格):

    姓名缩写: 物品编号1 物品编号2 ……

    最后一行输出存在问题的学生的总人数和被查缴物品的总数。

    输入样例

    4 2
    2333 6666
    CYLL 3 1234 2345 3456
    U 4 9966 6666 8888 6666
    GG 2 2333 7777
    JJ 3 0012 6666 2333
    

    输出样例

    U: 6666 6666
    GG: 2333
    JJ: 6666 2333
    3 5
    

    Java代码

    /**********************************************************************************
    Submit Time			Status		Score	Problem	Compiler		Run Time	User
    8/3/2019, 16:13:10	Accepted	20		1072	Java (openjdk)	109 ms		wowpH
    **********************************************************************************/
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class Main {
    	public static void main(String[] args) throws IOException {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		String[] nm = br.readLine().split(" ");
    		int n = Integer.parseInt(nm[0]);			// 学生人数
    		int m = Integer.parseInt(nm[1]);			// 需要查缴的物品数
    
    		String[] seized = br.readLine().split(" ");	// 需要查缴的物品
    		
    		int stuNum = 0, itemNum = 0;	// 存在问题的学生的总人数和被查缴物品的总数
    
    		for (int i = 0; i < n; ++i) {
    			String[] student = br.readLine().split(" ");// 学生的信息
    			int num = 0;							// 该生被查缴的物品数
    			boolean[] flag =  new boolean[student.length];// 是否被查缴,下标从2开始
    			for (int j = 2; j < student.length; ++j) {// 遍历学生的物品
    				for (int k = 0; k < m; ++k) {		// 遍历需要查缴的物品
    					if (student[j].contentEquals(seized[k])) {// 是需要查缴的物品
    						++num;						// 该生被查缴的物品数加1
    						flag[j] = true;				// 该物品被查缴
    					}
    				}
    			}
    			if (num > 0) {							// 该生有物品被查缴
    				System.out.print(student[0] + ": ");// 输出该生姓名
    				for (int j = 2; j < flag.length; ++j) {
    					if (true == flag[j]) {			// 被查缴
    						System.out.print(student[j]);// 输出物品编号
    						for (j = j + 1; j < flag.length; ++j) {
    							if (true == flag[j]) {	// 被查缴
    								System.out.print(" " + student[j]);// 空格和物品编号
    							}
    						}
    						System.out.println();		// 换行
    						break;						// 退出
    					}
    				}
    				++stuNum;							// 存在问题的学生人数加1
    				itemNum += num;						// 被查缴的物品数增加
    			}
    		}
    		System.out.println(stuNum + " " + itemNum);// 输出存在问题学生人数和查缴物品数
    	}
    }
    

    提交结果

    提交结果

  • 相关阅读:
    SQL一条语句统计记录总数及各状态数
    火狐登录国际账户
    HTML基础笔记
    增强for、lambda for、stream 遍历List 结束方法 or 跳过循环本次循环
    nginx
    前端问题总结
    Node.js
    Actuator
    ssh免密登录实现及Python实现
    【Mac渗透测试】之SQL注入Demo
  • 原文地址:https://www.cnblogs.com/wowpH/p/11687436.html
Copyright © 2020-2023  润新知