20 August 2014

Quiz 15: Find all possible values for last ball

Problem:
There are N number of balls having numbers on them. Number of 1st ball is 0. Number of next ball is either +a or +b then previous ball. Number of next ball is again either +a o +b then previous ball. Find all possible values for last ball(in increasing order) seperated by space
Input is in form of 3 lines
N= no of balls
a
b

Constraints
1<=N,a,b<=15
a != b

Sample Input
4
100
10

Sample Output:
30 120 210 300

Explanations:-
possible series
0 10 20 30
0 10 20 120
0 10 110 120
0 10 110 210
0 100 110 120
0 100 110 210
0 100 200 210
0 100 200 300
so last ball number can be 30,120,210 or 300

Solution:

@output = ();
chomp($n=<STDIN>);
if($n<1 or $n>1000)
{
exit;
}
chomp($a=<STDIN>);
if($a<1 or $a>1000)
{
exit;
}
chomp($b=<STDIN>);
if($b<1 or $b>1000)
{
exit;
}
if($a == $b)
{
exit;
}
$o1 = $a*($n-1);
$t1= $b*($n-1);
$x=($t1-$o1)/($n-1);
for($j=0;$j<$n;$j++)
     {
      $o2=$o1+($x*$j);
      push(@output,$o2);
     }
@output = sort {$a <=> $b}(@output);
foreach(@output)
{
print "$_ ";
}



Tips:
There will be N possible values ranging from a*(N-1) to b*(N-1) having equal difference.
To sort numerically, use sort {$a <=> $b}(@output);

No comments:

Post a Comment