Advertisement
Guest User

Untitled

a guest
Sep 16th, 2014
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.63 KB | None | 0 0
  1. package saari24;
  2.  
  3. public class Saari24 {
  4.  
  5.     public static long siirry(long ai, long aj, long aa, long li, long lj) {    
  6.         long askeleita = 0;                                                    
  7.         boolean inverttaaTulos = false;
  8.         if (ai == 1 && aj == 1) {
  9.             ai++;
  10.         }
  11.         aj++;
  12.         askeleita += 2;
  13.         if (Math.max(ai, aj) > Math.max(li, lj)) {
  14.             long tmp1 = ai;
  15.             long tmp2 = aj;
  16.             ai = li;
  17.             aj = lj;
  18.             li = tmp1;
  19.             lj = tmp2;
  20.             inverttaaTulos = true;
  21.         }
  22.  
  23.         while (true) {
  24.             if (aj > ai) {
  25.                 if (aj % 2 == 1) {
  26.                     askeleita += aj - ai + aj - 1;
  27.                     ai += aj - ai;
  28.                     aj = 1;
  29.                 } else {
  30.                     askeleita += ai - 1;
  31.                     ai = 1;
  32.                 }
  33.             } else if (aj < ai) {
  34.                 if (ai % 2 == 1) {
  35.                     askeleita += aj - 1;
  36.                     aj = 1;
  37.                 } else {
  38.                     askeleita += ai - aj + ai - 1;
  39.                     aj += ai - aj;
  40.                     ai = 1;
  41.                 }
  42.             } else {
  43.                 askeleita += ai;
  44.                 if (ai % 2 == 1) {
  45.                     aj = 1;
  46.                 } else {
  47.                     ai = 1;
  48.                 }
  49.             }
  50.  
  51.             if (ai == 1) {
  52.                 aj++;
  53.                 askeleita++;
  54.             } else {
  55.                 ai++;
  56.                 askeleita++;
  57.             }
  58.             if (Math.max(ai, aj) == (Math.max(li, lj))) {
  59.  
  60.                 if (ai > aj) {
  61.                     boolean lippu = false;
  62.                     while (true) {
  63.  
  64.                         if (ai == li && aj == lj) {
  65.                             if (inverttaaTulos) {
  66.                                 return aa - askeleita;
  67.                             } else {
  68.                                 return aa + askeleita - 1;
  69.                             }
  70.                         }
  71.                         if (ai == aj) {
  72.                             lippu = true;
  73.                         }
  74.                         if (!lippu) {
  75.                             aj++;
  76.                             askeleita++;
  77.                         } else {
  78.                             ai--;
  79.                             askeleita++;
  80.                         }
  81.                     }
  82.                 } else {
  83.                     boolean lippu = false;
  84.                     while (true) {
  85.                         if (ai == li && aj == lj) {
  86.                             if (inverttaaTulos) {
  87.                                 return aa - askeleita;
  88.                             } else {
  89.                                 return aa + askeleita - 1;
  90.                             }
  91.                         }
  92.                         if (ai == aj) {
  93.                             lippu = true;
  94.                         }
  95.                         if (!lippu) {
  96.                             ai++;
  97.                             askeleita++;
  98.                         } else {
  99.                             aj--;
  100.                             askeleita++;
  101.                         }
  102.                     }
  103.                 }
  104.             }
  105.  
  106.             if (aj + 1 == lj && ai + 1 == li) {
  107.                 break;
  108.             }
  109.         }
  110.         if (inverttaaTulos) {
  111.             return aa - askeleita;
  112.         } else {
  113.             return aa + askeleita - 1;
  114.         }
  115.     }
  116.  
  117.     public static void main(String[] args) {
  118.         System.out.println("Tulos: " + siirry(1, 1, 1, 123456789, 987654321));
  119.     }
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement