Source code for submission s1404

Go to diff to previous submission

grasshop.cpp

  1. #include <cstdio>
  2. //~ #include <math.h>
  3.  
  4. int pole[102][102];
  5.  
  6. int velX,velY,startX,startY,cilX,cilY;
  7.  
  8. int max (int a, int b){ return (a>b)?a:b; }
  9. int abs (int a){ return (a<0)? -a : a; }
  10.  
  11. int vzdalenost(int X,int Y)
  12. {
  13. X=abs(cilX-X);
  14. Y=abs(cilY-Y);
  15. return max(X,Y);
  16. }
  17.  
  18. int best;
  19.  
  20. void rekurze(int X,int Y, int N)
  21. {
  22. //~ printf ("---- %d %d\n",X,Y);
  23. if (X<1||Y<1||X>velX||Y>velY) return;
  24.  
  25.  
  26.  
  27.  
  28.  
  29. if (X == cilX && Y == cilY) {if (best==-1 || best > N) best = N;}
  30. else
  31. {
  32. rekurze(X+2,Y-1,N+1);
  33. rekurze(X+2,Y+1,N+1);
  34.  
  35.  
  36. rekurze(X+1,Y+2,N+1);
  37. rekurze(X-1,Y+2,N+1);
  38.  
  39.  
  40. }
  41.  
  42. }
  43.  
  44.  
  45. int main()
  46. {
  47. //~ int velX,velY,startX,startY,cilX,cilY;
  48. while (scanf("%d%d%d%d%d%d",&velX,&velY,&startX,&startY,&cilX,&cilY)==6)
  49. {
  50. int best = -1;
  51.  
  52. rekurze(startX,startY,0);
  53. if (best==-1) printf("impossible\n");
  54. else printf("%d\n",best);
  55. }
  56.  
  57. }
  58.  

Diff to submission s1395

grasshop.cpp

--- c4.s1395.cteam039.grasshop.cpp.0.grasshop.cpp
+++ c4.s1404.cteam039.grasshop.cpp.0.grasshop.cpp
@@ -32,9 +32,10 @@
                         rekurze(X+2,Y-1,N+1);
                         rekurze(X+2,Y+1,N+1);
+
                         
-                        rekurze(X-2,Y-1,N+1);
-                        rekurze(X-2,Y+1,N+1);
+                        rekurze(X+1,Y+2,N+1);
+                        rekurze(X-1,Y+2,N+1);
                         
-                
+
                 }