BILLIARD - Billiard

no tags 

In a billiard table with horizontal side a inches and vertical side b inches, a ball is launched from the middle of the table. After s > 0 seconds the ball returns to the point from which it was launched, after having made m bounces off the vertical sides and n bounces off the horizontal sides of the table. Find the launching angle A (measured from the horizontal), which will be between 0 and 90 degrees inclusive, and the initial velocity of the ball.

Assume that the collisions with a side are elastic (no energy loss), and thus the velocity component of the ball parallel to each side remains unchanged. Also, assume the ball has a radius of zero. Remember that, unlike pool tables, billiard tables have no pockets.


Input consists of a sequence of lines, each containing five nonnegative integers separated by whitespace. The five numbers are: a, b, s, m, and n, respectively. All numbers are positive integers not greater than 10000.

Input is terminated by a line containing five zeroes.


For each input line except the last, output a line containing two real numbers (accurate to two decimal places) separated by a single space. The first number is the measure of the angle A in degrees and the second is the velocity of the ball measured in inches per second, according to the description above.


100 100 1 1 1
200 100 5 3 4
201 132 48 1900 156
0 0 0 0 0

45.00 141.42
33.69 144.22
3.09 7967.81

hide comments
shekhataul: 2019-10-23 18:35:41

Nice hints.

Fish3R: 2012-07-28 07:19:12

@Sandeep Singh Jakhar
I had the same problem.. My error was due to typecasting.. int/int gives int.. (double) (int / int) also gives the same int value..

ɥsǝןǝǝu: 2012-07-27 18:49:36

i got wrong answer with float but accepted by changing it to double....

Adrian Kuegel: 2012-06-11 10:33:51

@sanctity: sorry, but the problem tells you exactly what you should print. If you don't do it, its your fault.

NOODLES: 2012-05-21 16:44:07

WTF.......a new line feed costed me 5 wrong answers.....idiotic....

NOODLES: 2012-05-21 15:18:31

are there any tricky cases.......i have checked my o/p is correctfor all possible cases but still getting a WA :( somebody help plzzzzzzzzzzzzzzzz

Sandeep Singh Jakhar: 2012-05-15 14:58:13

i'm getting incorrect o/p for 3rd

Parth Tripathi: 2012-01-06 08:23:22

more test cases please

Aquid Shahwar: 2011-12-17 18:39:47

my all the ans are comng correct,then also it is giving wa,,can anyone help me.

Alejandro Hitti: 2011-03-23 14:00:33

Took me a while to get this one... It was easy after I realized the ball doesn't stop when it gets to the middle again, it just goes by :p

Last edit: 2011-03-23 17:10:15

Added by:Adrian Kuegel
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Resource:University of Waterloo Local Contest (Spring 1999)