/*
* POJ_1591_2.cpp
*
* Created on: 2013年10月31日
* Author: Administrator
*/
#include <iostream>
#include <cstdio> using namespace std; const int maxn = 55;
int cards[25];
bool position[maxn]; int main(){
int participants,lucky; int counter = 1;
while(scanf("%d%d",&participants,&lucky)!=EOF){
int i,j;
for(i = 0 ; i < 20 ; ++i){
scanf("%d",&cards[i]);
} int left_num = participants;
memset(position,1,sizeof(position)); for(i = 0 ; left_num > lucky ; ++i){//在left_num>lucky的情况下,不断的扫卡片数组
int k = 0;//标记数了多少个人
for(j = 0 ; (j <participants) && left_num > lucky ; ++j ){//扫position[]数组
if(position[j]){//如果这一个人还在队列里面
if(++k == cards[i]){//如果书到了卡片中要求的数字
--left_num;//幸存者的人数-1
k=0;
position[j] = false;//那个人出队
}
}
}
} if(counter != 1){
printf("\n");
}
printf("Selection #%d\n",counter++);
for(i = 0 ; i < participants ; ++i){
if(position[i]){
printf("%d ",i+1);
}
}
printf("\n"); } return 0;
}
05-11 09:16