題目描述
在2行5列的格子中填入1到10的數(shù)字凡纳。
要求:相鄰的格子中的數(shù)余寥,右邊的大于左邊的领铐,下邊的大于上邊的。
如下圖所示的2種宋舷,就是合格的填法绪撵。
請(qǐng)你計(jì)算一共有多少種可能的方案。
image
輸出
請(qǐng)輸出該整數(shù)祝蝠,不要輸出任何多余的內(nèi)容
#include<bits/stdc++.h>
int map[3][6];
int flag[15],sum[0];
int check()
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<5;j++)
{
if((map[i][j]>map[i][j+1]) || (map[i][j]>map[i+1][j]))
return 0;
}
return 1;
}
void dfs(int count)
{
int i,j;
if (count==10)
{
if(check())
sum++;
return;
}
for(i=1;i<=10;i++){
if(!flag[i])
{
flag[i]=1;
map[count/5][count%5]=i;
dfs(count+1);
flag[i]=0;
}
}
}
int main ()
{
map[0][5]=map[1][5]=100;
for(int i=0;i<5;i++)
map[2][i]=100;
dfs(0);
printf("%d\n",sum);
return 0;
}