36 lines
750 B
PHP
36 lines
750 B
PHP
|
<?php
|
||
|
|
||
|
// Over-complicated because I thought they wouldn't put the cube back in the bag at first.
|
||
|
|
||
|
$FILE_NAME = "input.txt";
|
||
|
$sum = 0;
|
||
|
|
||
|
$fd = fopen($FILE_NAME, "r");
|
||
|
while($line = fgets($fd)){
|
||
|
$data = array();
|
||
|
preg_match("/Game (\d+): (.*)/", $line, $data);
|
||
|
|
||
|
$game_id = $data[1];
|
||
|
$hand = explode(";", $data[2]);
|
||
|
|
||
|
$valid = true;
|
||
|
foreach ($hand as $h) {
|
||
|
$bag = array(
|
||
|
"red" => 12,
|
||
|
"green" => 13,
|
||
|
"blue" => 14,
|
||
|
);
|
||
|
$colors = array();
|
||
|
preg_match_all("/(\d+) (red|green|blue)/", $h, $colors);
|
||
|
foreach (array_combine($colors[2], $colors[1]) as $key => $value) {
|
||
|
$bag[$key] = $bag[$key] - $value;
|
||
|
if($bag[$key] < 0){$valid = false;}
|
||
|
}
|
||
|
}
|
||
|
if($valid){$sum = $sum + $game_id; echo $game_id . "\n";}
|
||
|
|
||
|
}
|
||
|
fclose($fd);
|
||
|
|
||
|
echo $sum;
|