Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $input = file_get_contents('input.txt');
- $inputItems = explode(",",$input);
- $inputItems = array_map('intval', $inputItems);
- $inc = 1;
- $cnt = count($inputItems);
- $startInput = 5;
- for($i=0;$i<$cnt;)
- {
- $opcode = $inputItems[$i] % 100;
- $p1 = (($inputItems[$i] % 1000) - $opcode);
- $p2 = (($inputItems[$i] % 10000) - $opcode - $p1);
- $p3 = (($inputItems[$i] % 100000) - $opcode - $p1 - $p2);
- $p1 /= 100;
- $p2 /= 1000;
- $p3 /= 10000;
- $i1 = $p1 === 1 ? $i + 1 : $inputItems[$i + 1]??0;
- $i2 = $p2 === 1 ? $i + 2 : $inputItems[$i + 2]??0;
- $i3 = $p3 === 1 ? $i + 3 : $inputItems[$i + 3]??0;
- switch ($opcode)
- {
- case 1:
- $inputItems[$i3] = $inputItems[$i1] + $inputItems[$i2];
- $inc = 4;
- break;
- case 2:
- $inputItems[$i3] = $inputItems[$i1] * $inputItems[$i2];
- $inc = 4;
- break;
- case 3:
- $inputItems[$i1] = $startInput;
- $inc = 2;
- break;
- case 4:
- var_dump($inputItems[$i1]);
- $inc = 2;
- break;
- case 5:
- $val = $inputItems[$i1];
- if($val > 0)
- {
- $i = $inputItems[$i2];
- $inc = 0;
- } else {
- $inc = 3;
- }
- break;
- case 6:
- $val = $inputItems[$i1];
- if($val === 0)
- {
- $i = $inputItems[$i2];
- $inc = 0;
- } else {
- $inc = 3;
- }
- break;
- case 7:
- $inputItems[$i3] = $inputItems[$i1] < $inputItems[$i2] ? 1 : 0;
- $inc = 4;
- break;
- case 8:
- $inputItems[$i3] = $inputItems[$i1] === $inputItems[$i2] ? 1 : 0;
- $inc = 4;
- break;
- case 99:
- break(2);
- default:
- echo "Error:" . PHP_EOL;
- echo $i . PHP_EOL;
- }
- $i+=$inc;
- }
Advertisement
Add Comment
Please, Sign In to add comment