Skip to main content
7 of 14
Add test cases
  • 511
  • 2
  • 16

Falling ASCII balls


You are given 2D map with balls and ground in it. It looks like that:

  1         5          2


Each number is a ball, and the _ is ground level. _ character is not allowed in any other line than ground level line. Balls can have numbers from 0 to 9. Assume that each character is one meter. You can add spaces, to fill empty lines, if that does help you.

EDIT: You cannot assume that last line is the ground level - empty lines below ground level are allowed. There are only spaces, newlines and digits 0-9 allowed above ground level. Each digit should have only one occurrence.

EDIT2: One ball can be placed above the another one.

Get map from pastebin!
Test case 1
Test case 2


Your challenge is to read map like that (from stdin - you are allowed to use cat balls.txt | ./yourexecutable) and output velocity of each ball, when it hits the ground.

Here's the formula for velocity:

enter image description here

Also, assume, that h is line number difference between ground's line number, and ball's line number, and that g equals 10m/s^2.


You should output each balls number and velocity is m/s at ground level. For example N - Vm/s. Where N is ball number, and V is its velocity. You can also output array if you want.

Happy coding! :)

  • 511
  • 2
  • 16