📄 2269.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 + -