c語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽:
0. 冠軍將贏得乙份「神秘大獎」(比如很巨大的一本學生研究**集……)。
1. 排名為素數的學生將贏得最好的獎品 —— 小黃人玩偶!
2. 其他人將得到巧克力。
給定比賽的最終排名以及一系列參賽者的id,你要給出這些參賽者應該獲得的獎品。
輸入格式:
輸入第一行給出乙個正整數n(<=10000),是參賽者人數。隨後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
68888
0001
1111
2222
8888
2222
8888: minion0001: chocolate
1111: mystery award
2222: are you kidding?
8888: checked
2222: are you kidding?
這題遇到很多坑啊
一開始把id當字串,用cin輸入結果超時了
#include#include#include#include#includeusing namespace std;
/*bool isprime(int a)
for(int i=2 ;i<=sqrt(a) ;i++)
}return true;
}*/int main()
會報錯 fill(isprime,isprime+n+1,1);
for(int i=2;i<=n;i++) //類似於break和continue的功能,第二個在isprime為false的時候退出整個迴圈,第乙個在isprime為false的時候結束本次迴圈
int k,flag;
bool checked[10010]; //寫成bool checked[10010]=不能用
fill(checked+1,checked+n+1,false);
for(int i=1;i<=n;i++)
scanf("%d",&s[i]);
scanf("%d",&k);
for(int i=0;i
1059 C語言競賽 20
c語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 排名為素數的學生將贏得最好的獎品 小黃人玩偶!其他人將得到巧克力。給定比賽的最終排名以及一系列參賽者的id,你要給出這些參賽者應該獲得的獎品。...
1059 C語言競賽 20
時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue c語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 0.冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 1.排名...
1059 C語言競賽 20
c語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 排名為素數的學生將贏得最好的獎品 小黃人玩偶!其他人將得到巧克力。給定比賽的最終排名以及一系列參賽者的id,你要給出這些參賽者應該獲得的獎品。...