/*8、求网格中的黑点分布。现有6*7的网格,在某些格子中有黑点,
已知各行与各列中有黑点的点数之和,请在这张网格中画出黑点的位置。*/
#define ROWS 6
#define COLS 7
int R[ROWS] = {2, 0, 4, 3, 4, 0}; // 各行黑点数和的情况
int C[COLS] = { 4, 1, 2, 2, 1, 2, 1 }; // 各列黑点数和的情况
int rcount[6];
int ccount[7];
int pos[6][7];
//------------------
void output()
{
for(int r=0;r<6;r++)
{
for(int c=0;c<7;c++)
{
cout<<pos[r][c];
}
cout<<endl;
}
}
//------------------
int valid(int i,int j,int x,int y)
{
if( (x>=R[i])||(y>=C[j]) ||(pos[i][j]==1) )
return 0;
return 1;
}
//------------------
void set(int n)
{
if(n==13)
{
output();
}
int i,j;
for(i=0;i<ROWS;i++)
{
for(j=0;j<COLS;j++)
{
if(valid(i,j,rcount[i],ccount[j]))
{
pos[i][j]=1;
rcount[i]++;
ccount[j]++;
}
} }
}
//------------------
void main()
{
set(0);
output();
}