Advertisement
Guest User

Untitled

a guest
Oct 21st, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7. int m, x1, x2, y1, y2, z1, z2, t;
  8. int flag = 0;
  9. double h;
  10.  
  11. printf("Zadejte rozmer mistnosti:\n");
  12. if (scanf("%d", &m) != 1 || m < 1)
  13. {
  14. printf("Neplatny vstup.\n");
  15. return 1;
  16. }
  17. printf("Bod #1:\n");
  18. if (scanf("%d%d%d", &x1, &y1, &z1) != 3)
  19. {
  20. printf("Neplatny vstup.\n");
  21. return 1;
  22. }
  23. if (x1 != 0 && x1 != m && y1 != 0 && y1 != m && z1 != 0 && z1 != m)
  24. {
  25. printf("Neplatny vstup.\n");
  26. return 1;
  27. }
  28. if ((x1 == 0 || x1 == m) && (y1 < 20 || y1 > m - 20 || z1 < 20 || z1 > m - 20))
  29. {
  30. printf("Neplatny vstup.\n");
  31. return 1;
  32. }
  33. if ((y1 == 0 || y1 == m) && (x1 < 20 || x1 > m - 20 || z1 < 20 || z1 > m - 20))
  34. {
  35. printf("Neplatny vstup.\n");
  36. return 1;
  37. }
  38. if ((z1 == 0 || z1 == m) && (y1 < 20 || y1 > m - 20 || x1 < 20 || x1 > m - 20))
  39. {
  40. printf("Neplatny vstup.\n");
  41. return 1;
  42. }
  43.  
  44. printf("Bod #2:\n");
  45. if (scanf("%d%d%d", &x2, &y2, &z2) != 3)
  46. {
  47. printf("Neplatny vstup.\n");
  48. return 1;
  49. }
  50. if (x2 != 0 && x2 != m && y2!= 0 && y2 != m && z2 != 0 && z2 != m)
  51. {
  52. printf("Neplatny vstup.\n");
  53. return 1;
  54. }
  55. if ((x2 == 0 || x2 == m) && (y2 < 20 || y2 > m - 20 || z2 < 20 || z2 > m - 20))
  56. {
  57. printf("Neplatny vstup.\n");
  58. return 1;
  59. }
  60. if ((y2 == 0 || y2 == m) && (x2 < 20 || x2 > m - 20 || z2 < 20 || z2 > m - 20))
  61. {
  62. printf("Neplatny vstup.\n");
  63. return 1;
  64. }
  65. if ((z2 == 0 || z2 == m) && (y2 < 20 || y2 > m - 20 || x2 < 20 || x2 > m - 20))
  66. {
  67. printf("Neplatny vstup.\n");
  68. return 1;
  69. }
  70.  
  71. if (x1 == x2 && (x1 == 0 || x1 == m) ||y1 == y2 && (y1 == 0 || y1 == m) || z1 == z2 && (z1 == 0 || z1 == m))
  72. {
  73. t = abs(x2 - x1) + abs(y2 - y1) + abs(z2 - z1);
  74. flag = 1;
  75. }
  76.  
  77.  
  78. if (abs (x2 - x1) == m)
  79. {
  80. int tmp = 2 * m - z1 - z2, t1;
  81. if (z1 + z2 <= tmp)
  82. tmp = z1 + z2;
  83. t = m + abs(y2 - y1) + tmp;
  84.  
  85. tmp = 2 * m - y1 - y2;
  86. if (y1 + y2 <= tmp)
  87. tmp = y1 + y2;
  88. t1 = m + abs(z2 - z1) + tmp;
  89.  
  90. if (t1 <= t)
  91. t = t1;
  92. flag = 1;
  93. }
  94.  
  95. if (abs (y2 - y1) == m)
  96. {
  97. int tmp = 2 * m - z1 - z2, t1;
  98. if (z1 + z2 <= tmp)
  99. tmp = z1 + z2;
  100. t = m + abs(x2 - x1) + tmp;
  101.  
  102. tmp = 2 * m - x1 - x2;
  103. if (x1 + x2 <= tmp)
  104. tmp = x1 + x2;
  105. t1 = m + abs(z2 - z1) + tmp;
  106.  
  107. if (t1 <= t)
  108. t = t1;
  109. flag = 1;
  110. }
  111.  
  112. if (abs (z2 - z1) == m)
  113. {
  114. int tmp = 2 * m - y1 - y2, t1;
  115. if (y1 + y2 <= tmp)
  116. tmp = y1 + y2;
  117. t = m + abs(x2 - x1) + tmp;
  118.  
  119. tmp = 2 * m - x1 - x2;
  120. if (x1 + x2 <= tmp)
  121. tmp = x1 + x2;
  122. t1 = m + abs(y2 - y1) + tmp;
  123.  
  124. if (t1 <= t)
  125. t = t1;
  126. flag = 1;
  127. }
  128.  
  129. if (flag == 0)
  130. t = abs(x2 - x1) + abs(y2 - y1) + abs(z2 - z1);
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137. printf("%d\n", t);
  138.  
  139. return 0;
  140.  
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement