题目链接: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();
}
}
}
}
}
}

提交结果

最新文章

  1. Java、JVM模型
  2. 《图形学》实验五:改进的Bresenham算法画直线
  3. pl/sql developer——instant-client 简单配置
  4. [Bootstrap]7天深入Bootstrap(2)整体架构
  5. JS中onpropertychange和onchange事件区别小结
  6. 【转】使用Xcode中的iOS SDK给iphone开发出第一个App程序
  7. 一些技术blog和安全blog
  8. ORA-03113: 通信通道的文件结尾 进程 ID: 764 会话 ID: 125 序列号: 5
  9. 【LeetCode】119. Pascal&#39;s Triangle II
  10. Column &#39;id&#39; in where clause is ambiguous
  11. 用Xshell在centos7下安装lnmp服务
  12. 《Dare To Dream》第七次作业:团队项目设计完善&amp;编码测试
  13. 自动化测试基础篇--Selenium单选框(Radio)复选框(CheckBox)
  14. poj 2229 Sumsets(记录结果再利用的DP)
  15. .NET Core / C# 开发 IOT 嵌入式设备的个人见解
  16. MAC自动脚本
  17. First 1
  18. javascript中使用new与不使用实例化对象的区别
  19. device tree --- #address-cells and #size-cells property【转】
  20. awk基础命令

热门文章

  1. CentOS安装相应版本的内核源码
  2. 利用原生JS实时监听input框输入值
  3. CentOs7设置主机名称,以及主机名称和ip的对应关系
  4. MySQL - \g 和 \G用法与区别
  5. CEF3开发者系列之Cookies管理和共享&lt;转&gt;
  6. Bayesian Statistics for Genetics | 贝叶斯与遗传学
  7. Hibernate Tools插件的安装和使用
  8. Linux命令 – ln 软连接与硬链接区别介绍
  9. ROS tf广播编写
  10. haproxy高可用、负载均衡集群