33 lines
476 B
Awk
33 lines
476 B
Awk
{
|
|
# strip leading game
|
|
sub(/.*: /, "")
|
|
# counter for winning sum
|
|
p = -1
|
|
# set winning numbers
|
|
for (i = 1; $i != "|"; i++) {
|
|
a[$i] = 1
|
|
}
|
|
# normal numbers
|
|
for (; i <= NF; i++) {
|
|
if (a[$i]) {
|
|
# p only used for part 1
|
|
p += 1
|
|
# count[R] is scratchcard count of record R, minus 1
|
|
count[NR+p+1] += count[NR] + 1
|
|
sc += count[NR] + 1
|
|
}
|
|
}
|
|
if (p != -1) {
|
|
s += 2 ^ p
|
|
}
|
|
# clear a
|
|
delete a
|
|
# original scratchcard
|
|
sc += 1
|
|
}
|
|
|
|
END {
|
|
print s
|
|
print sc
|
|
}
|