Guest User

Untitled

a guest
Dec 7th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.02 KB | None | 0 0
  1. <?php
  2. $input = file_get_contents('input.txt');
  3. $inputItems = explode(",",$input);
  4. $inputItems = array_map('intval', $inputItems);
  5.  
  6. $inc = 1;
  7. $cnt = count($inputItems);
  8.  
  9. $startInput = 5;
  10.  
  11. for($i=0;$i<$cnt;)
  12. {
  13.     $opcode = $inputItems[$i] % 100;
  14.     $p1 = (($inputItems[$i] % 1000) - $opcode);
  15.     $p2 = (($inputItems[$i] % 10000) - $opcode - $p1);
  16.     $p3 = (($inputItems[$i] % 100000) - $opcode - $p1 - $p2);
  17.  
  18.  
  19.     $p1 /= 100;
  20.     $p2 /= 1000;
  21.     $p3 /= 10000;
  22.  
  23.     $i1 = $p1 === 1 ? $i + 1 : $inputItems[$i + 1]??0;
  24.     $i2 = $p2 === 1 ? $i + 2 : $inputItems[$i + 2]??0;
  25.     $i3 = $p3 === 1 ? $i + 3 : $inputItems[$i + 3]??0;
  26.  
  27.     switch ($opcode)
  28.     {
  29.         case 1:
  30.             $inputItems[$i3] = $inputItems[$i1] + $inputItems[$i2];
  31.             $inc = 4;
  32.             break;
  33.         case 2:
  34.             $inputItems[$i3] = $inputItems[$i1] * $inputItems[$i2];
  35.             $inc = 4;
  36.             break;
  37.         case 3:
  38.             $inputItems[$i1] = $startInput;
  39.             $inc = 2;
  40.             break;
  41.         case 4:
  42.             var_dump($inputItems[$i1]);
  43.             $inc = 2;
  44.             break;
  45.         case 5:
  46.             $val = $inputItems[$i1];
  47.             if($val > 0)
  48.             {
  49.                 $i = $inputItems[$i2];
  50.                 $inc = 0;
  51.             } else {
  52.                 $inc = 3;
  53.             }
  54.             break;
  55.         case 6:
  56.             $val = $inputItems[$i1];
  57.             if($val === 0)
  58.             {
  59.                 $i = $inputItems[$i2];
  60.                 $inc = 0;
  61.             } else {
  62.                 $inc = 3;
  63.             }
  64.             break;
  65.         case 7:
  66.             $inputItems[$i3] = $inputItems[$i1] < $inputItems[$i2] ? 1 : 0;
  67.             $inc = 4;
  68.             break;
  69.         case 8:
  70.             $inputItems[$i3] = $inputItems[$i1] === $inputItems[$i2] ? 1 : 0;
  71.             $inc = 4;
  72.             break;
  73.         case 99:
  74.             break(2);
  75.         default:
  76.             echo "Error:" . PHP_EOL;
  77.             echo $i . PHP_EOL;
  78.     }
  79.     $i+=$inc;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment