PAT-B 1069 微博轉發抽獎【模擬+集合】
PAT-B 1069 微博轉發抽獎
https://pintia.cn/problem-sets/994805260223102976/problems/994805265159798784
題目
小明 PAT 考了滿分,高興之餘決定發起微博轉發抽獎活動,從轉發的網友中按順序每隔 N 個人就發出一個紅包。請你編寫程式幫助他確定中獎名單。
輸入
輸入第一行給出三個正整數 M(≤ 1000)、N 和 S,分別是轉發的總量、小明決定的中獎間隔、以及第一位中獎者的序號(編號從 1 開始)。隨後 M 行,順序給出轉發微博的網友的暱稱(不超過 20 個字元、不包含空格回車的非空字串)。注意:可能有人轉發多次,但不能中獎多次。所以如果處於當前中獎位置的網友已經中過獎,則跳過他順次取下一位。
輸出
按照輸入的順序輸出中獎名單,每個暱稱佔一行。如果沒有人中獎,則輸出 Keep going...
。
樣例輸入
9 3 2
Imgonnawin!
PickMe
PickMeMeMeee
LookHere
Imgonnawin!
TryAgainAgain
TryAgainAgain
Imgonnawin!
TryAgainAgain
樣例輸出
PickMe
Imgonnawin!
TryAgainAgain
分析
使用集合儲存已經獲獎的人的暱稱,具體細節看程式。
C++程式
#include<iostream>
#include<string>
#include<set>
using namespace std;
const int N=1005;
string str[N];
set<string>v;//記錄已經獲獎的人的暱稱
int main()
{
int m,n,s;
cin>>m>>n>>s;
for(int i=1;i<=m;i++)
cin>>str[i];
bool flag=false;//記錄是否有人中獎
for(int i=s;i<=m;)
{
if(v.count(str[i])==0)
{
cout<<str[i]<<endl;//輸出中獎的人的暱稱
v.insert(str[i]);//將中獎的人的暱稱放入集合中
flag=true;//標記有人中獎了
i+=n;//取下一個間隔為n的人
}
else
i++;//此人已經獲獎了,取下一個人
}
if(!flag) cout<<"Keep going..."<<endl;//沒人中獎
return 0;
}
相關文章
- 微信小程式:抽獎轉盤微信小程式
- 抽獎動畫 - 大轉盤抽獎動畫
- 微信小程式抽獎-翻牌微信小程式
- PAT-B 1025 反轉連結串列【模擬+對映】
- Python模擬微博登陸,親測有效Python
- 大轉盤抽獎系統
- 實戰模擬│揭祕為啥年會你抽不到特等獎
- 微信小程式翻牌抽獎效果微信小程式
- PAT-B 1027 列印沙漏 【模擬】
- 開發一個抽獎大轉盤 Lucky-spin
- 微信抽獎小程式如何製作?教你快速製作微信公眾號抽獎小程式!
- 【微信刮刮卡抽獎遊戲】教你輕鬆做個抽獎遊戲頁面遊戲
- 新浪微博抽獎存在貓膩:變相網路詐騙為何平臺不管
- PAT-B 1058 選擇題 【模擬】
- PAT-B 1061 判斷題【模擬】
- PAT-B 1067 試密碼【模擬】密碼
- PAT-B 1071 小賭怡情【模擬】
- 抽獎動畫 - lao虎機抽獎動畫
- 抽獎動畫 - 九宮格抽獎動畫
- 抽獎動畫 - 紅包雨抽獎動畫
- 轉發新浪微博程式猿心得
- PHP基於laravel框架獲取微博資料之一 模擬新浪微博登入PHPLaravel框架
- PAT-B 1054 求平均值 【模擬】
- PAT-B 1072 開學寄語【模擬】
- PAT-B 1081 檢查密碼【模擬】密碼
- PAT-B 1084 外觀數列 【模擬】
- PAT-B 1085 PAT單位排行【模擬】
- PAT-B 1018 錘子剪刀布 【模擬】
- js抽獎JS
- thinkphp5 抽獎幸運大轉盤PHP
- PAT-B 1019 數字黑洞【陣列+模擬】陣列
- PAT-B 1017 A除以B【模擬 大數除法】
- PAT-B 1059 C語言競賽【模擬】C語言
- 隨機抽獎隨機
- php抽獎功能PHP
- 8、SSH埠轉發情景模擬
- 新浪微博分享不跳轉
- PAT-B 1024 科學計數法【模擬+字串】字串