PAT-B 1059 C語言競賽【模擬】
PAT-B 1059 C語言競賽
https://pintia.cn/problem-sets/994805260223102976/problems/994805269828059136
題目
C 語言競賽是浙江大學計算機學院主持的一個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽:
- 0、冠軍將贏得一份“神祕大獎”(比如很巨大的一本學生研究論文集……)。
- 1、排名為素數的學生將贏得最好的獎品 —— 小黃人玩偶!
- 2、其他人將得到巧克力。
給定比賽的最終排名以及一系列參賽者的 ID,你要給出這些參賽者應該獲得的獎品。
輸入
輸入第一行給出一個正整數 N(≤10^4),是參賽者人數。隨後 N 行給出最終排名,每行按排名順序給出一位參賽者的 ID(4 位數字組成)。接下來給出一個正整數 K 以及 K 個需要查詢的 ID。
輸出
對每個要查詢的 ID,在一行中輸出 ID: 獎品
,其中獎品或者是 Mystery Award
(神祕大獎)、或者是 Minion
(小黃人)、或者是 Chocolate
(巧克力)。如果所查 ID 根本不在排名裡,列印 Are you kidding?
(耍我呢?)。如果該 ID 已經查過了(即獎品已經領過了),列印 ID: Checked
(不能多吃多佔)。
樣例輸入
6
1111
6666
8888
1234
5555
0001
6
8888
0001
1111
2222
8888
2222
樣例輸出
8888: Minion
0001: Chocolate
1111: Mystery Award
2222: Are you kidding?
8888: Checked
2222: Are you kidding?
分析
模擬題,具體細節看程式,註釋比較清楚。
C++程式
#include<iostream>
#include<map>
using namespace std;
const int N=10005;
bool prime[N];//prime[i]記錄i是否為素數
//素數篩選
void maketable(int n)
{
for(int i=2;i<n;i++)
if(!prime[i])
{
for(int j=i+i;j<n;j+=i)
prime[j]=true;
}
}
struct Node{
Node(){}
Node(int rank,bool flag):rank(rank),flag(flag){}
int rank;//排名
bool flag;//是否被查詢
};
map<int,Node>d;
int main()
{
maketable(N);//打表
int n,k,id;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&id);
d[id]=Node(i,false);
}
scanf("%d",&k);
for(int i=1;i<=k;i++)
{
scanf("%d",&id);
printf("%04d: ",id);//細節
if(d.count(id))
{
if(d[id].flag)
{
printf("Checked\n");//已經被查詢過了
continue;
}
if(d[id].rank==1)//如果是冠軍
printf("Mystery Award\n");
else if(!prime[d[id].rank])//排名是素數
printf("Minion\n");
else
printf("Chocolate\n");
d[id].flag=true;//標記已被查詢過
}
else//id不存在
printf("Are you kidding?\n");
}
return 0;
}
相關文章
- PAT-B 1072 開學寄語【模擬】
- c語言模擬Python的命名引數C語言Python
- C語言實戰!!!:商城系統模擬C語言
- NOIP模擬賽(10.17):語言,色球,斐波,偶數
- 2020.10.08【普及組】模擬賽C組
- PAT-B 1027 列印沙漏 【模擬】
- 10.6 模擬賽(NOIP 模擬賽 #9)
- 自己用C語言寫的一個模擬退火演算法C語言演算法
- 模擬賽
- PAT-B 1058 選擇題 【模擬】
- PAT-B 1061 判斷題【模擬】
- PAT-B 1067 試密碼【模擬】密碼
- PAT-B 1071 小賭怡情【模擬】
- 第一屆C語言比賽答案C語言
- 大語言模型微調資料競賽,冠-軍!模型
- 聯賽模擬測試20 C. Weed
- 2020.10.07【普及組】模擬賽C組 總結
- 模擬實現不受限制的字串函式--C語言版字串函式C語言
- 作業系統:程式狀態轉換模擬,C語言實現作業系統C語言
- c語言與字串相關的庫函式的模擬實現C語言字串函式
- PAT-B 1054 求平均值 【模擬】
- PAT-B 1081 檢查密碼【模擬】密碼
- PAT-B 1084 外觀數列 【模擬】
- PAT-B 1085 PAT單位排行【模擬】
- PAT-B 1018 錘子剪刀布 【模擬】
- 11.26 模擬賽
- 20241016 模擬賽
- 11.11模擬賽
- 模擬賽 2
- 1114模擬賽
- 11.27 模擬賽
- 11.22 模擬賽
- 11.21 模擬賽
- 11.23 模擬賽
- 1123模擬賽
- 1101模擬賽
- 11.3 模擬賽
- 2024.11.2 模擬賽