1. 程式人生 > >1069. 微博轉發抽獎(20)

1069. 微博轉發抽獎(20)

clas img 整數 can turn 發出 紅包 %d str

小明PAT考了滿分,高興之余決定發起微博轉發抽獎活動,從轉發的網友中按順序每隔N個人就發出一個紅包。請你編寫程序幫助他確定中獎名單。

輸入格式:

輸入第一行給出三個正整數M(<= 1000)、N和S,分別是轉發的總量、小明決定的中獎間隔、以及第一位中獎者的序號(編號從1開始)。隨後M行,順序給出轉發微博的網友的昵稱(不超過20個字符、不包含空格回車的非空字符串)。

註意:可能有人轉發多次,但不能中獎多次。所以如果處於當前中獎位置的網友已經中過獎,則跳過他順次取下一位。

輸出格式:

按照輸入的順序輸出中獎名單,每個昵稱占一行。如果沒有人中獎,則輸出“Keep going...”。

輸入樣例1:

9 3 2
Imgonnawin!
PickMe
PickMeMeMeee
LookHere
Imgonnawin!
TryAgainAgain
TryAgainAgain
Imgonnawin!
TryAgainAgain

輸出樣例1:

PickMe
Imgonnawin!
TryAgainAgain

輸入樣例2:

2 3 5
Imgonnawin!
PickMe

輸出樣例2:

Keep going...
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 int main(){
5 char a[1010][30]; 6 int m,n,s; 7 int b[1010] = {0}; 8 scanf("%d %d %d",&m,&n,&s); 9 if(m<s){ 10 printf("Keep going..."); 11 return 0; 12 } 13 for(int i=1;i<=m;i++){ 14 scanf("%s",a[i]); 15 } 16 int h = n-1; 17 for(int i=s;i<=m;i++){
18 if(!b[i]){ 19 h++; 20 if(h==n){ 21 printf("%s\n",a[i]); 22 h = 0; 23 for(int j=i;j<=m;j++){ 24 if(strcmp(a[i],a[j])==0){ 25 b[j] = 1; 26 } 27 } 28 } 29 } 30 } 31 }

1069. 微博轉發抽獎(20)