题意见紫书
懒得重新写了,就是个模拟题,就用以前写的吧,可能不太简洁
#include<iostream> #include<cstdio> using namespace std; const int N=20+10; int main() { int n,w,s,q[N],p1,p2,loop=0,left; while(cin>>n>>w>>s&&n) { for(int i=1;i<=n;i++) q[i]=1; p1=0,p2=n+1; left=n; while(left) { int cnt=(w%left?w%left:left); while(cnt--) do{ p1=((p1+1)%n?(p1+1)%n:n); }while(!q[p1]); cnt=(s%left?s%left:left); while(cnt--) do{ p2=((p2-1)%n?(p2-1)%n:n); }while(!q[p2]); if(left<n) cout<<','; printf("%3d",p1); if(p1!=p2) printf("%3d",p2); left-=(p1==p2?1:2); q[p1]=q[p2]=0; } cout<<endl; } }