UVa 133 The Dole Queue

来源:互联网 发布:php 开源社区系统 编辑:程序博客网 时间:2024/06/07 18:46

双向约瑟夫环吗,很简单直接模拟就行了

#include <stdio.h>int n , k , m , a[25];int solve1(int p) {int t = m;while(t--) {p = ((p + n - 2) % n) + 1;while(a[p] == 0)p = ((p + n - 2) % n) + 1;}return p;}int solve2(int p) {int t = k; while(t--) {p = ((p + n) % n) + 1;while(a[p] == 0)p = ((p + n) % n) + 1;}return p;}int main() {while(~scanf("%d %d %d",&n,&k,&m) && n) {for(int i = 1; i <= n; i++) a[i] = i;int s = n;int B = n , A = 1;//A ni , B shunwhile(s) {A = solve1(A);//p2B = solve2(B);//p1printf("%3d",B);s--;if(A != B) {printf("%3d",A);s--;}a[A] = a[B] = 0;if(s) printf(",");}printf("\n");}return 0;}


原创粉丝点击