Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.60 KB | None | 0 0
  1. <?php
  2. $input = 3214;
  3.  
  4. $grid = [];
  5.  
  6. $x = 1;
  7. while ($x < 301){
  8.   $y = 1;
  9.  
  10.   $rack_id = $x + 10;
  11.  
  12.   while ($y < 301) {
  13.     $power_level = $rack_id * $y;
  14.     $power_level += $input;
  15.     $power_level *= $rack_id;
  16.     if ($power_level < 100) {
  17.       $power_level = 0;
  18.     } else {
  19.       $power_level = substr($power_level, -3, 1);
  20.     }
  21.     $power_level -= 5;
  22.     $grid[$x][$y] = $power_level;
  23.     $y++;
  24.   }
  25.   $x++;
  26. }
  27.  
  28. $strongest_power_level = [
  29.   'cell'  => [
  30.     'x'    => null,
  31.     'y'    => null,
  32.     'size' => null,
  33.   ],
  34.   'level' => null,
  35. ];
  36.  
  37. $square_power_levels = [];
  38.  
  39. foreach ($grid as $x => $y_row) {
  40.   foreach ($y_row as $y => $power_level) {
  41.     $size = 1;
  42.     $this_power_level = 0;
  43.     while ($size <= (301 - $x) && $size <= (301 - $y)) {
  44.       $x_pointer = $x;
  45.       while ($x_pointer < $x + $size) {
  46.         $this_power_level += $grid[$x_pointer][$y + $size - 1];
  47.         $x_pointer++;
  48.       }
  49.       $y_pointer = $y;
  50.       while ($y_pointer < ($y + $size - 1)) {
  51.         $this_power_level += $grid[$x + $size - 1][$y_pointer];
  52.         $y_pointer++;
  53.       }
  54.       if ($this_power_level > $strongest_power_level['level'] || $strongest_power_level['level'] === null) {
  55.         $strongest_power_level['cell']['x']    = $x;
  56.         $strongest_power_level['cell']['y']    = $y;
  57.         $strongest_power_level['cell']['size'] = $size;
  58.         $strongest_power_level['level']        = $this_power_level;
  59.       }
  60.       $size++;
  61.     }
  62.   }
  63. }
  64.  
  65. echo $strongest_power_level['cell']['x'] . "," . $strongest_power_level['cell']['y'] . "," . $strongest_power_level['cell']['size'];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement