1069 微博转发抽奖(JAVA)

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

 

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

输入格式:

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

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

输出格式:

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

输入样例 1:

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

image.gif

输出样例 1:

PickMe
Imgonnawin!
TryAgainAgain

image.gif

输入样例 2:

2 3 5
Imgonnawin!
PickMe

image.gif

输出样例 2:

Keep going...

image.gif

代码实现:

import java.io.*;
import java.util.HashMap;
/**
 * @author yx
 * @date 2022-07-24 13:19
 */
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 M=(int) in.nval;
        in.nextToken();
        int N=(int) in.nval;
        in.nextToken();
        int S=(int) in.nval;
        String[] nums=new String[M];
        HashMap<String,Integer> map=new HashMap<>();
        for (int i = 0; i < M; i++) {
            nums[i]=ins.readLine();
        }
        if(S>M){
            System.out.println("Keep going...");
        }else {
            for (int i = S-1; i <M ; i=i+N) {
                if(!map.containsKey(nums[i])){
                    System.out.println(nums[i]);
                }else {
                    while (map.containsKey(nums[i])){
                        i++;
                        if(i>=M){
                            return;
                        }
                    }
                    System.out.println(nums[i]);
                }
                    map.put(nums[i],1);
            }
        }
    }
}

image.gif

image.gif编辑

相关文章
|
7月前
|
存储 安全 Java
基于Java爬取微博数据(四) 获取 图片 or 视频
【5月更文挑战第14天】基于Java爬取微博数据(四) 图片 or 视频 下载
|
7月前
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
7月前
|
数据采集 前端开发 Java
2024年全新基于Java爬取微博数据(完整版)
【5月更文挑战第9天】适用于2024年 的 基于 Java 爬取微博数据,涉及 微博正文、图片、视频、粉丝数、关注数、等微博主页正文列表数据及微博主页用户数据信息的获取
|
7月前
|
JSON 前端开发 Java
基于Java爬取微博数据(三) 微博主页用户数据
【5月更文挑战第13天】基于Java爬取微博数据(三) 微博主页用户数据
|
7月前
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的微博网站附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的微博网站附带文章和源代码设计说明文档ppt
36 0
|
7月前
|
数据采集 前端开发 Java
基于Java爬取微博数据(一) 微博主页正文列表数据
【5月更文挑战第16天】讲述如何通过 Java 爬取微博数据 微博主页正文列表数据,以及相应的注意点
|
7月前
|
JSON 前端开发 Java
基于Java爬取微博数据(五) 补充微博正文列表图片 or 视频 内容
【5月更文挑战第15天】基于Java爬取微博数据(五) 补充微博正文列表图片 or 视频 内容
|
7月前
|
JavaScript Java 测试技术
基于Java的微博网站的设计与实现(源码+lw+部署文档+讲解等)
基于Java的微博网站的设计与实现(源码+lw+部署文档+讲解等)
80 1
|
前端开发 Java 程序员
JAVA仿微博系统(JAVA毕业设计含源码和运行教程)
JAVA仿微博系统(JAVA毕业设计含源码和运行教程)
277 0
|
12天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####