## 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);