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