-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathday04.php
54 lines (50 loc) · 1.2 KB
/
day04.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
$values = explode(",", readline());
$best_turns = 100000000;
$best_value = 0;
$worst_turns = 0;
$worst_value = 0;
function process_one() {
global $values, $best_turns, $best_value, $worst_turns, $worst_value;
$grid = array();
$rowb = array();
$colb = array();
$sum = 0;
for ($i = 0; $i < 5; $i++) {
$grid[$i] = sscanf(readline(), "%d %d %d %d %d");
foreach ($grid[$i] as $x) $sum += $x;
$rowb[$i] = 0;
$colb[$i] = 0;
}
$turns = 0;
foreach ($values as $x) {
$turns++;
for ($i = 0; $i < 5; $i++) {
for ($j = 0; $j < 5; $j++) {
if ($grid[$i][$j] == $x) {
$sum -= $grid[$i][$j];
$grid[$i][$j] = -1;
$rowb[$i]++;
$colb[$j]++;
if ($rowb[$i] == 5 or $colb[$j] == 5) {
if ($best_turns > $turns) {
$best_turns = $turns;
$best_value = $sum * $x;
}
if ($worst_turns < $turns) {
$worst_turns = $turns;
$worst_value = $sum * $x;
}
return;
}
}
}
}
}
}
while(readline() !== false) {
process_one();
}
echo ">>>>>>>>>>>>>>>>>>>>>>>>\n";
echo $best_value, " ", $worst_value;
?>