3868733_ac_63ms_440k.cc
来自「POJ 1166己AC源代码」· CC 代码 · 共 69 行
CC
69 行
#include <iostream>
#include <vector>
using namespace std;
int off[9][9]={
//A,B,C,D,E,F,G,H,I
{1,1,0,1,1,0,0,0,0},
{1,1,1,0,0,0,0,0,0},
{0,1,1,0,1,1,0,0,0},
{1,0,0,1,0,0,1,0,0},
{0,1,0,1,1,1,0,1,0},
{0,0,1,0,0,1,0,0,1},
{0,0,0,1,1,0,1,1,0},
{0,0,0,0,0,0,1,1,1},
{0,0,0,0,1,1,0,1,1}
};
int main()
{
int min=10000000;
vector<int> result;
int a[9], b[9], c[9];
for(int i=0; i<9; i++)
cin>>b[i];
for(a[0]=0; a[0]<4; a[0]++)
for(a[1]=0; a[1]<4; a[1]++)
for(a[2]=0; a[2]<4; a[2]++)
for(a[3]=0; a[3]<4; a[3]++)
for(a[4]=0; a[4]<4; a[4]++)
for(a[5]=0; a[5]<4; a[5]++)
for(a[6]=0; a[6]<4; a[6]++)
for(a[7]=0; a[7]<4; a[7]++)
for(a[8]=0; a[8]<4; a[8]++)
{
bool flag=true;
for(int i=0; i<9; i++)
{
c[i]=b[i];
for(int j=0; j<9; j++)
c[i]+=a[j]*off[j][i];
if(c[i]%4!=0)
{
flag=false;
break;
}
}
if(flag)
{
int st=0;
for(int i=0; i<9; i++)
st+=a[i];
if(st<min)
{
min=st;
result.clear();
for(int i=0; i<9; i++)
result.push_back(a[i]);
}
}
}
for(int i=0; i<9; i++)
{
if(result[i]>0)
for(int j=0; j<result[i]; j++)
printf("%d ", i+1);
}
printf("\n");
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?