1404.cpp

来自「这是哈尔滨工业大学acmOJ的源代码」· C++ 代码 · 共 32 行

CPP
32
字号
/*  This Code is Submitted by wywcgs for Problem 1404 on 2006-01-07 at 22:30:06 */ 
#include <cstdio>

const int CARD_N = 20;
const int MAX = 64;

int main()
{
	int card[CARD_N];
	int next[MAX], prev[MAX];
	int n, m, i, j, k, t;
	
	for(t = 1; scanf("%d %d", &n, &m) != EOF; t++) {
		for(i = 0; i < CARD_N; i++) scanf("%d", &card[i]);
		for(i = 0; i <= n; i++) next[i] = i+1, prev[i] = i-1;
		for(i = 0; i < CARD_N && n != m; i++) {
			for(j = k = 1; k != n+1; k = next[k], j++) {
				if(j % card[i] == 0) next[prev[k]] = next[k], prev[next[k]] = prev[k], m++;
				if(n == m) break;
			}
		}
		printf("Selection #%d\n", t);
		for(i = next[0]; i != n+1; i = next[i]) {
			if(i != next[0]) putchar(' ');
			printf("%d", i);
		}
		printf("\n\n");
	}
	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?