[关闭]
@PaulGuan 2016-10-18T16:42:20.000000Z 字数 508 阅读 605

G - Help Vasilisa the Wise 2 题解

算法 题解


题目大意

给定4个空,排列为2*2,在这四个空填不相等的4个1-9的数,使得横向,纵向,斜向的和均满足给定的要求。若没有,输出-1.
下面是一个例子

此处输入图片的描述

分析

鉴于此题的数据范围,直接穷举即可。

代码

  1. #include <iostream>
  2. using namespace std;
  3. int main(void)
  4. {
  5. int r1,r2,c1,c2,d1,d2;
  6. cin>>r1>>r2>>c1>>c2>>d1>>d2;
  7. int i,j,k,l;
  8. for(i=1;i<10;i++)
  9. for(j=1;j<10;j++)
  10. {
  11. if(j==i)
  12. continue;
  13. for(k=1;k<10;k++)
  14. {
  15. if(k==j||k==i)
  16. continue;
  17. for(l=1;l<10;l++)
  18. {
  19. if(l==k||l==j||l==i)
  20. continue;
  21. if(i+j==r1&&k+l==r2&&i+k==c1&&j+l==c2&&i+l==d1&&j+k==d2)
  22. {
  23. cout<<i<<" "<<j<<endl;
  24. cout<<k<<" "<<l<<endl;
  25. return 0;
  26. }
  27. }
  28. }
  29. }
  30. cout<<"-1"<<endl;
  31. return 0;
  32. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注