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编辑

相关文章
|
3月前
|
存储 安全 Java
基于Java爬取微博数据(四) 获取 图片 or 视频
【5月更文挑战第14天】基于Java爬取微博数据(四) 图片 or 视频 下载
|
3月前
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
3月前
|
数据采集 前端开发 Java
2024年全新基于Java爬取微博数据(完整版)
【5月更文挑战第9天】适用于2024年 的 基于 Java 爬取微博数据,涉及 微博正文、图片、视频、粉丝数、关注数、等微博主页正文列表数据及微博主页用户数据信息的获取
|
3月前
|
JSON 前端开发 Java
基于Java爬取微博数据(三) 微博主页用户数据
【5月更文挑战第13天】基于Java爬取微博数据(三) 微博主页用户数据
|
3月前
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的微博网站附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的微博网站附带文章和源代码设计说明文档ppt
19 0
|
3月前
|
数据采集 前端开发 Java
基于Java爬取微博数据(一) 微博主页正文列表数据
【5月更文挑战第16天】讲述如何通过 Java 爬取微博数据 微博主页正文列表数据,以及相应的注意点
|
3月前
|
JSON 前端开发 Java
基于Java爬取微博数据(五) 补充微博正文列表图片 or 视频 内容
【5月更文挑战第15天】基于Java爬取微博数据(五) 补充微博正文列表图片 or 视频 内容
|
3月前
|
JavaScript Java 测试技术
基于Java的微博网站的设计与实现(源码+lw+部署文档+讲解等)
基于Java的微博网站的设计与实现(源码+lw+部署文档+讲解等)
40 1
|
12月前
|
前端开发 Java 程序员
JAVA仿微博系统(JAVA毕业设计含源码和运行教程)
JAVA仿微博系统(JAVA毕业设计含源码和运行教程)
257 0
|
5天前
|
安全 Java 数据库
一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)
这篇文章是关于Java面试题的笔记,涵盖了线程池复用原理、Spring框架基础、AOP和IOC概念、Bean生命周期和作用域、单例Bean的线程安全性、Spring中使用的设计模式、以及Spring事务的实现方式和隔离级别等知识点。