Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. using System;
  2.  
  3. class Program
  4. {
  5. static int n, w, h;
  6. static int[] x = new int[110], y = new int[110];
  7. static int ansx, ansy;
  8. static bool GO(int l)
  9. {
  10. for (int k = 0; k < n; k++)
  11. {
  12. int left = x[k];
  13. for (int up = 0; up <= h; up++)
  14. {
  15. bool can = true;
  16. int right = left + l, down = up + l;
  17. if (right > w || down > h)
  18. can = false;
  19. for (int i = 0; i < n && can; i++)
  20. if (x[i] > left && x[i] < right &&
  21. y[i] > up && y[i] < down)
  22. can = false;
  23. if (can)
  24. {
  25. ansx = left; ansy = up;
  26. return true;
  27. }
  28. }
  29. }
  30. for (int k = 0; k < n; k++)
  31. {
  32. int up = y[k];
  33. for (int left = 0; left <= w; left++)
  34. {
  35. int right = left + l, down = up + l;
  36. bool can = true;
  37. if (right > w || down > h)
  38. can = false;
  39. for (int i = 0; i < n && can; i++)
  40. if (x[i] > left && x[i] < right &&
  41. y[i] > up && y[i] < down)
  42. can = false;
  43. if (can)
  44. {
  45. ansx = left; ansy = up;
  46. return true;
  47. }
  48. }
  49. }
  50. return false;
  51. }
  52. static void Main()
  53. {
  54. string[] Buff = Console.ReadLine().Split();
  55. n = int.Parse(Buff[0]);
  56. w = int.Parse(Buff[1]);
  57. h = int.Parse(Buff[2]);
  58. for (int i = 1; i <= n; i++)
  59. {
  60. Buff = Console.ReadLine().Split();
  61. x[i] = int.Parse(Buff[0]);
  62. y[i] = int.Parse(Buff[1]);
  63. }
  64.  
  65. x[n + 1] = w; y[n + 1] = h; n += 2;
  66. int l = 0, r = Math.Min(w, h), m;
  67. while (l <= r)
  68. {
  69. m = (l + r) / 2;
  70. if (GO(m))
  71. l = m + 1;
  72. else r = m - 1;
  73. }
  74. Console.WriteLine(ansx + " " + ansy + " " + (l - 1));
  75. }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement