#!/usr/bin/perl my $res = 0; while(<>) { my %set; my ($line) = /Game \d+: (.*)/ or die "Bad line: $_"; while ($line =~ /(\d+) ([a-z]+)/g) { $set{$2} = $1 if $set{$2} < $1; } my $power = 1; for (values %set) { $power *= $_ } $res += $power; } print "$res\n";