⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2269.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 2269 on 2006-07-26 at 10:04:47 */ 
#include <cstdio>
#include <algorithm>
using namespace std;
 
const int CN = 13;
 
int main()
{
	int cd[CN], ap[CN], i, j, k;
	
	while(true) {
		memset(ap, 0, sizeof(ap));
		for(i = 0; i < CN; i++)
			if(scanf("%d", &cd[i]) != 1) return 0;
			else ap[cd[i]]++;
		int pn = 0;
		for(i = 1; i < 10; i++) {
			int ncd[CN]; memcpy(ncd, ap, sizeof(ap));
			ncd[i]++; bool can;
			for(j = 1; j < 10; j++) {
				if(ncd[j] < 2) continue;
				can = true;
				int tmp[CN]; memcpy(tmp, ncd, sizeof(tmp));
				tmp[j] -= 2;
				for(k = 1; k < 8 && can; k++) {
					tmp[k] %= 3;
					while(tmp[k] != 0)
						if(tmp[k+1] && tmp[k+2]) { tmp[k]--; tmp[k+1]--; tmp[k+2]--; }
						else { can = false; break; }
				}
				if(tmp[8]%3 || tmp[9]%3) can = false;
				if(can) break;
			}
			if(can && ap[i] != 4) { printf("%s%d", pn == 0 ? "" : " ", i); pn++; }
		}
		if(pn == 0) printf("no solution");
		putchar('\n');
	}
}

⌨️ 快捷键说明

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