#include <iostream>
#include <cstdio>
#include <vector>
#include<queue>
using namespace std;
int main()
{
int n,m;
int casei=1;
while(~scanf("%d%d",&n,&m))
{
queue<int> q;
vector<int> v;
for(int i=1;i<=n;i++)
v.push_back(i);
int a;
for(int i=0;i<20;i++)
{
scanf("%d",&a);
q.push(a);
}
int flag=0;
while(1)
{
a=q.front()-1;
int t=a;
q.pop();
while(v.end()>v.begin()+a)
{
v.erase(v.begin()+a);
a+=t;
if(v.size()==m){
flag=1;break;
}
}
if(flag)
break;
}
printf("Selection #%d\n",casei++);
for(int i=0;i<v.size();i++)
printf("%d ",v[i]);
printf("\n\n");
}
return 0;
}
POJ 1591(约瑟夫问题,vector+queue)
最新推荐文章于 2023-03-04 12:44:20 发布