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; |