Problem:
There is a list of N students with their first names. Now if 2 or more students have same name, you need to change 2nd name to "name1", 3rd name to "name2" and so on. If there is only 1 occurrence of particular name, then it will remain as it is.
Input Format:
N(number of students)
N lines with 1 name each
N lines with 1 name each
Output Format:
n lines with modified names
n lines with modified names
Constraints:
None
None
Sample Input
10
priya
satyam
shikha
sid
amit
shikha
amit
amit
amit
satyam
priya
satyam
shikha
sid
amit
shikha
amit
amit
amit
satyam
Sample Output:
priya
satyam
shikha
sid
amit
shikha1
amit1
amit2
amit3
satyam1
priya
satyam
shikha
sid
amit
shikha1
amit1
amit2
amit3
satyam1
Explanations:
As soon as name "shikha" came for 2nd time, change it to "shikha1" and so on.
As soon as name "shikha" came for 2nd time, change it to "shikha1" and so on.
Solution:
%count=();
for($i=0;$i<$n;$i++)
{
chomp($name=<STDIN>);
if($count{$name})
{
$name2=$name . $count{$name};
$count{$name}++;
push(@out,$name2);
}
else
{
$count{$name}=1;
push(@out,$name);
}
}
foreach(@out)
{
print "$_\n";
}
Tips:
use of PERL hashes
No comments:
Post a Comment