Go to diff to previous submission
#include <stdio.h> #include <math.h> int R,C, Lr, Lc, Gr, Gc; int get_dist(int a, int b, int x, int y) { } int main() { { int d = get_dist(Gr, Gc, Lr, Lc); int result = 0; if (d == 0) { } else if (R == 1 || C == 1) { } else if (R == 2 || C == 2) { int t = (x > y) ? x : y; if (Gr == Lr || Gc == Gc) { if ((t+2) % 4 == 0) { } else { if (t % 4 == 0) { } } else if (R == 3 && C == 3) { else { switch(d) { case 1: break; case 3: break; case 4: break; case 5: break; } } } else { while (x > 2 || y > 2 ) { if (x > y) { x -= 2; y--; if (y<0) y = 2; } else { y -= 2; x--; if (x<0) x = 2; } result++; } switch(x+y) { case 1: break; case 2: break; case 3: break; case 4: break; } } } return 0; }
--- c4.s1052.cteam074.grasshop.c.0.grasshop.c +++ c4.s1090.cteam074.grasshop.c.0.grasshop.c @@ -37,45 +37,45 @@ else { switch(d) { - case 1: - printf("3\n"); - break; - case 3: - printf("1\n"); - break; - case 4: - printf("4\n"); - break; - case 5: - printf("3\n"); - break; - } + case 1: + printf("3\n"); + break; + case 3: + printf("1\n"); + break; + case 4: + printf("4\n"); + break; + case 5: + printf("3\n"); + break; + } } - } else if (x != 0 && x*2 < y) { - result = y/2; - result += (y%2 > 0) ? 1 : 0; - printf("%d\n", result); - } else if (y != 0 && y*2 < x) { - result = x/2; - result += (x%2 > 0) ? 1 : 0; - printf("%d\n", result); } else { - if (x < 4 && y < 4) - switch(d) { + while (x > 2 || y > 2 ) { + if (x > y) { + x -= 2; + y--; + if (y<0) y = 2; + } else { + y -= 2; + x--; + if (x<0) x = 2; + } + result++; + } + + switch(x+y) { case 1: - printf("3\n"); + printf("%d\n", result+3); break; case 2: - printf("2\n"); + printf("%d\n", result+2); break; case 3: - printf("1\n"); + printf("%d\n", result+1); break; case 4: - printf("3\n"); + printf("%d\n", result+4); break; - } else { - result += (d % 3) > 0 ? 1 : 0; - result += d/3; - printf("%d\n", result); } }