<?php
$input = "turn off 499,499 through 500,500";
$lights = [[]];
for($i = 0; $i<1000; $i++){
for($j = 0; $j<1000; $j++){
$lights[$i][$j] = 0;
}
}
$inputs = explode("\n",$input);
function action($s){
$on = preg_match("/turn on/",$s);
$off = preg_match("/turn off/",$s);
$toggle = preg_match("/toggle/",$s);
if($on > 0){
return 1;
}
else if($off>0){
return 2;
}
else if($toggle>0){
return 3;
}
}
for($i = 0; $i < count($inputs); $i++){
$matches = null;
preg_match_all("/\d{1,3},\d{1,3}/",$inputs[$i], $matches);
$from = $matches[0];
$to = $matches[1];
$x1 = explode(",",$from)[0][0];
$y1 = explode(",",$from)[0][1];
$x2 = explode(",",$to)[0];
$y2 = explode(",",$to)[1];
for($j = $y1; $j<=$y2; $j++){
for($k = $x1; $k<=$x2; $k++){
if(action($inputs[$i])===1){
$lights[$j][$k] = 1;
}
else if(action($inputs[$i])===2){
$lights[$j][$k] = 0;
}
else if(action($inputs[$i])===3){
if($lights[$j][$k] == 0){
$lights[$j][$k] = 1;
}
else{
$lights[$j][$k] = 0;
}
}
}
}
}
$count = 0;
for($i = 0; $i<1000; $i++){
for($j = 0; $j<1000; $j++){
if($lights[$i][$j] == 1){
$count++;
}
}
}
echo $count;
?>
preferences:
78.71 ms | 406 KiB | 5 Q