[关闭]
@sensitive-cs 2016-10-19T09:29:55.000000Z 字数 550 阅读 688

G - Help Vasilisa the Wise 2

分析:

如图所示,很好理解的问题。

思路:

用解方程的方法把四个格子的数分别表示出来就可以了。只是需要注意对于接的判断必须为整数且互不相等。具体见代码。

代码:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int r1,r2,c1,c2,d1,d2;
  5. int i = 0,flag = 1,j = 0;
  6. int a[4];
  7. scanf("%d%d",&r1,&r2);
  8. scanf("%d%d",&c1,&c2);
  9. scanf("%d%d",&d1,&d2);
  10. a[0] = d1 - c2 + r1;
  11. a[1] = r1 + c2 - d1;
  12. a[2] = r2 + c1 - d1;
  13. a[3] = r2 + d1 - c1;
  14. for (i = 0;i < 4;i++)
  15. {
  16. if (a[i] % 2 != 0)
  17. flag = 0;
  18. if ((float)a[i] / 2 < 1 || (float)a[i] / 2 > 9)
  19. flag = 0;
  20. }
  21. for (i = 0; i < 4;i++)
  22. for (j = 0;j < 4;j++)
  23. {
  24. if (i == j)
  25. continue;
  26. if (a[i] == a[j])
  27. flag = 0;
  28. }
  29. if (flag)
  30. {
  31. printf("%d %d\n",a[0] / 2,a[1] / 2);
  32. printf("%d %d\n",a[2] / 2,a[3] / 2);
  33. }
  34. else
  35. printf("%d\n",-1);
  36. return 0;
  37. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注