#!/usr/bin/env perl use strict; use warnings; my %h; my $nn = <>; chomp $nn; for (my $ii = 0; $ii < $nn; $ii++) { $_ = <>; my ($m, $s) = split / /, <>; chomp $s; my $line = <>; chomp $line; my @tags = split / /, $line; for my $tag (@tags) { $h{$tag} += $s; } } my @arr; while (my ($k, $v) = each(%h)) { push @arr, [$k, $v]; } @arr = sort { $b->[1] <=> $a->[1] or $a->[0] cmp $b->[0] } @arr; while (my ($i, $p) = each(@arr)) { last if $i >= 10; print "$p->[0] $p->[1]\n"; }