Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- int main()
- {
- int m, x1, x2, y1, y2, z1, z2, t;
- int flag = 0;
- double h;
- printf("Zadejte rozmer mistnosti:\n");
- if (scanf("%d", &m) != 1 || m < 1)
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- printf("Bod #1:\n");
- if (scanf("%d%d%d", &x1, &y1, &z1) != 3)
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if (x1 != 0 && x1 != m && y1 != 0 && y1 != m && z1 != 0 && z1 != m)
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if ((x1 == 0 || x1 == m) && (y1 < 20 || y1 > m - 20 || z1 < 20 || z1 > m - 20))
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if ((y1 == 0 || y1 == m) && (x1 < 20 || x1 > m - 20 || z1 < 20 || z1 > m - 20))
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if ((z1 == 0 || z1 == m) && (y1 < 20 || y1 > m - 20 || x1 < 20 || x1 > m - 20))
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- printf("Bod #2:\n");
- if (scanf("%d%d%d", &x2, &y2, &z2) != 3)
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if (x2 != 0 && x2 != m && y2!= 0 && y2 != m && z2 != 0 && z2 != m)
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if ((x2 == 0 || x2 == m) && (y2 < 20 || y2 > m - 20 || z2 < 20 || z2 > m - 20))
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if ((y2 == 0 || y2 == m) && (x2 < 20 || x2 > m - 20 || z2 < 20 || z2 > m - 20))
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if ((z2 == 0 || z2 == m) && (y2 < 20 || y2 > m - 20 || x2 < 20 || x2 > m - 20))
- {
- printf("Neplatny vstup.\n");
- return 1;
- }
- if (x1 == x2 && (x1 == 0 || x1 == m) ||y1 == y2 && (y1 == 0 || y1 == m) || z1 == z2 && (z1 == 0 || z1 == m))
- {
- t = abs(x2 - x1) + abs(y2 - y1) + abs(z2 - z1);
- flag = 1;
- }
- if (abs (x2 - x1) == m)
- {
- int tmp = 2 * m - z1 - z2, t1;
- if (z1 + z2 <= tmp)
- tmp = z1 + z2;
- t = m + abs(y2 - y1) + tmp;
- tmp = 2 * m - y1 - y2;
- if (y1 + y2 <= tmp)
- tmp = y1 + y2;
- t1 = m + abs(z2 - z1) + tmp;
- if (t1 <= t)
- t = t1;
- flag = 1;
- }
- if (abs (y2 - y1) == m)
- {
- int tmp = 2 * m - z1 - z2, t1;
- if (z1 + z2 <= tmp)
- tmp = z1 + z2;
- t = m + abs(x2 - x1) + tmp;
- tmp = 2 * m - x1 - x2;
- if (x1 + x2 <= tmp)
- tmp = x1 + x2;
- t1 = m + abs(z2 - z1) + tmp;
- if (t1 <= t)
- t = t1;
- flag = 1;
- }
- if (abs (z2 - z1) == m)
- {
- int tmp = 2 * m - y1 - y2, t1;
- if (y1 + y2 <= tmp)
- tmp = y1 + y2;
- t = m + abs(x2 - x1) + tmp;
- tmp = 2 * m - x1 - x2;
- if (x1 + x2 <= tmp)
- tmp = x1 + x2;
- t1 = m + abs(y2 - y1) + tmp;
- if (t1 <= t)
- t = t1;
- flag = 1;
- }
- if (flag == 0)
- t = abs(x2 - x1) + abs(y2 - y1) + abs(z2 - z1);
- printf("%d\n", t);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement