UVA-133

水,依旧只放代码。
Solution:

#include <algorithm>
#include <iostream>
#include <utility>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <sstream>
#include <deque>
#include <string>
#include <vector>
#include <cmath>
#include <stack>
#include <queue>
#include <map>
#include <set>
using namespace std;
#define mm(a,i)           memset(a, i, sizeof(a));
#define LL    long long
#define Mod 1000000007
#define SC_C(s)           scanf("%c", &s)
#define SC(a)             scanf("%d", &a)
#define SCC(a,b)          scanf("%d %d", &a, &b)
#define SCCC(a,b,c)       scanf("%d %d %d", &a, &b, &c)
#define FXA(i,a,n)        for(i=a; i<n; i++)
#define FDA(i,a,n)        for(i=a; i>n; i++)
#define FXDA(i,a,n)       for(i=a; i<=n; i++)
#define FDDA(i,a,n)       for(i=a; i>=n; i++)
#define FXB(i,a,n)        for(i=a; i<n; i--)
#define FDB(i,a,n)        for(i=a; i>n; i--)
#define FXDB(i,a,n)       for(i=a; i<=n; i--)
#define FDDB(i,a,n)       for(i=a; i>=n; i--)
#define PF(n)             printf("%d\n", n);
#define PFF(n,m)          printf("%d %d\n", n, m);
#define PFFF(x,y,z)       printf("%d %d %d\n", x, y, z);
#define PF_Case(i)        printf("Case %d:\n",i);
#define PF_C(i)           printf("%c:\n",i);
#define PF_L(x)           printf("%I64d\n",x);
#define IN                freopen("D:\\in.txt","r",stdin);
#define ENT               printf("\n");
#define MAX(a,b)          a>b?a:b
#define MIN(a,b)          a<b?a:b

int maxx =  999999999;
int minn = -999999999;
bool flag;
int i,j,k,T,ans,sum,m,n,cnt;
int a[25];

int go(int p, int d, int t) {
    while(t--) {
        do {
            p=(p+d+n-1)%n+1;
        } while(a[p] == 0);
    }
    return p;
}

main() {
    while(SCCC(n,k,m)==3 && n) {
        FXDA(i,1,n)   *(a+i)=i;
        int lft = n;
        int p1=n, p2=1;
        while(lft) {
            p1 = go(p1, 1, k);
            p2 = go(p2, -1, m);
            printf("%3d", p1);
            lft--;
            if(p2 != p1) {
                printf("%3d", p2);
                lft--;
            }
            a[p1] = a[p2] = 0;
            if(lft) printf(",");
        }
        puts("");
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值