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(不能多吃多占)。
輸入樣例:
61111
6666
8888
1234
5555
0001
68888
0001
1111
2222
8888
2222
輸出樣例:
8888
: minion
0001
: chocolate
1111
: mystery award
2222
: are you kidding?
8888
: checked
2222
: are you kidding?
輸入分析
輸入n,隨後n行id
輸入k,隨後k行待查詢id
輸出分析
k行,每一行先是id: ,再是字串
整體思路
我的思路是利用乙個儲存體,儲存選手的id,排名,獎品,獎品領取狀態;在輸入成績時,將選手資訊儲存起來
接著是查詢k個id;通過結構體id判斷其獎品以及是否領取
完整**
#include
#include
using
namespace std;
struct stustu[
10001];
bool
isprime
(int t)
return1;
}int
main()
else
} cin>>k;
int id;
//要查詢id
for(i=
0;i(id==stu[j]
.id&&stu[j]
.flag!=1)
}if(j==n)
}return0;
}
注意事項
測試點1,剛提交的時候並沒有成功,顯示執行超時
但反覆交了幾次,時而全正確,時而超時,可能o(n²)比較牽強
另外注意素數的判斷,以及輸出時利用printf("%04d")來滿足四位數的要求
1059 C語言競賽(20分)
c語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 排名為素數的學生將贏得最好的獎品 小黃人玩偶!其他人將得到巧克力。給定比賽的最終排名以及一系列參賽者的id,你要給出這些參賽者應該獲得的獎品。...
1059 C語言競賽 (20 分)
1059 c語言競賽 20 分 c 語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 給定比賽的最終排名以及一系列參賽者的 id,你要給出這些參賽者應該獲得的獎品。輸入第一行給出乙個正整數 n 10 4 是參賽者人數。隨後 n 行給出最終排名,每行按...
1059 C語言競賽 20 分
c 語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 0 冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 1 排名為素數的學生將贏得最好的獎品 小黃人玩偶!2 其他人將得到巧克力。給定比賽的最終排名以及一系列參賽者的 id,你要給出這些參賽者...