• PAT(B) 1069 微博转发抽奖(Java)


    题目链接:1069 微博转发抽奖 (20 point(s))

    题目描述

    小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包。请你编写程序帮助他确定中奖名单。

    输入格式

    输入第一行给出三个正整数 M(≤ 1000)、N 和 S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从 1 开始)。随后 M 行,顺序给出转发微博的网友的昵称(不超过 20 个字符、不包含空格回车的非空字符串)。

    注意:可能有人转发多次,但不能中奖多次。所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位。

    输出格式

    按照输入的顺序输出中奖名单,每个昵称占一行。如果没有人中奖,则输出 Keep going...

    输入样例 1

    9 3 2
    Imgonnawin!
    PickMe
    PickMeMeMeee
    LookHere
    Imgonnawin!
    TryAgainAgain
    TryAgainAgain
    Imgonnawin!
    TryAgainAgain
    

    输出样例 1

    PickMe
    Imgonnawin!
    TryAgainAgain
    

    输入样例 2

    2 3 5
    Imgonnawin!
    PickMe
    

    输出样例 2

    Keep going...
    

    Java代码

    /**********************************************************************************
    Submit Time			Status		Score	Problem	Compiler		Run Time	User
    8/18/2019, 22:15:44	Accepted	20		1069	Java (openjdk)	110 ms		wowpH
    **********************************************************************************/
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    
    public class Main {
    	public static void main(String[] args) throws Exception {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		String[] MNS = br.readLine().split(" ");
    		int M = Integer.parseInt(MNS[0]);						// 总转发量
    		int N = Integer.parseInt(MNS[1]);						// 间隔
    		int S = Integer.parseInt(MNS[2]);						// 第一位中奖者
    
    		if (S > M) {											// 没有人中奖
    			System.out.println("Keep going...");
    		} else {												// 有人中奖
    			int i = 0;											// 序号
    			while ((++i) < S) {									// 跳过前S-1次转发
    				br.readLine();
    			}
    			List<String> list = new ArrayList<String>();		// 中奖名单
    			while ((i++) <= M) {								// 注意这里的i++
    				String name = br.readLine();					// 昵称
    				if (false == list.contains(name)) {				// 未中过奖
    					list.add(name);								// 添加到中奖名单
    					System.out.println(name);					// 输出中奖昵称
    					for (int j = 1; i <= M && j < N; ++i, ++j) {// 跳过间隔的N-1次
    						br.readLine();
    					}
    				}
    			}
    		}
    	}
    }
    

    提交结果

    提交结果

  • 相关阅读:
    IIS浏览显示目录
    图解NuGet的安装和使用
    未能找到类型或命名空间名称“DbContext”
    IIS报错:未将对象引用设置到对象的实例
    最新11位手机号正则表达式
    Sql Server连表查询字段为null
    sql server 表连接
    2019用卡提额攻略
    win10,7 80端口被占用的检测和解决方法
    SAP之RFC_READ_TABLE
  • 原文地址:https://www.cnblogs.com/wowpH/p/11687423.html
Copyright © 2020-2023  润新知