@PaulGuan
2016-10-19T00:42:20.000000Z
字数 508
阅读 678
算法
题解
给定4个空,排列为2*2,在这四个空填不相等的4个1-9的数,使得横向,纵向,斜向的和均满足给定的要求。若没有,输出-1.
下面是一个例子
鉴于此题的数据范围,直接穷举即可。
#include <iostream>
using namespace std;
int main(void)
{
int r1,r2,c1,c2,d1,d2;
cin>>r1>>r2>>c1>>c2>>d1>>d2;
int i,j,k,l;
for(i=1;i<10;i++)
for(j=1;j<10;j++)
{
if(j==i)
continue;
for(k=1;k<10;k++)
{
if(k==j||k==i)
continue;
for(l=1;l<10;l++)
{
if(l==k||l==j||l==i)
continue;
if(i+j==r1&&k+l==r2&&i+k==c1&&j+l==c2&&i+l==d1&&j+k==d2)
{
cout<<i<<" "<<j<<endl;
cout<<k<<" "<<l<<endl;
return 0;
}
}
}
}
cout<<"-1"<<endl;
return 0;
}