uva133

题意见紫书

懒得重新写了,就是个模拟题,就用以前写的吧,可能不太简洁

#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;
    }
}

猜你喜欢

转载自www.cnblogs.com/033000-/p/10037403.html