Problem:
Few friends are playing cards. There play N rounds. Winner of each round is in format "name points". Points of all other players for that round is 0. Final Winner is the person with maximum total points of all rounds. It is guaranteed that no 2 players will have same maximum total after N rounds. Find the name of person and his/her total score
Input Format:
N(number of rounds)
N lines in format "name points"
N lines in format "name points"
Output Format:
Name Total_points
Name Total_points
Constraints:
None
None
Sample Input
10
priya 10
satyam 7
shikha 6
sid 11
amit 7
shikha 6
amit 1
amit 1
amit 2
satyam 4
priya 10
satyam 7
shikha 6
sid 11
amit 7
shikha 6
amit 1
amit 1
amit 2
satyam 4
Sample Output:
shikha 12
shikha 12
Explanations:
Shikha have 6+6=12 points, which are maximum.
Shikha have 6+6=12 points, which are maximum.
Solution:
for($i=0;$i<$t;$i++)
{
chomp($line=<STDIN>);
push(@arr,$line);
}
foreach(@arr){
($a,$b)=split/ /;
$n{$a}+=$b;
}
$max= (sort {$b<=>$a} values %n)[0];
for(@arr){
($a,$b)=split/ /;
$m{$a}+=$b;
if ($max == $n{$a}) {$ans=$a; last }
}
print "$ans $max";
Tips:
use of PERL hashes
No comments:
Post a Comment