#P4874. Cannon

Cannon

Cannon

题面翻译

题目大意:

有一门大炮,坐标在(0,0)(0,0),和mm堵墙,现在大炮要射nn发炮弹,每发炮弹的初始速度vv是一样的,射击角度为α(0<α<π/4)α(0<α<π/4),假设射击后经过时间tt,重力加速度g=9.8g=9.8,则有:

vx(t)=vcos(α)v_x(t)=v*cos(α)

vy(t)=vsin(α)gtv_y(t)=v*sin(α)-g*t

x(t)=vx(t)tx(t)=v_x(t)*t

y(t)=vsin(α)tgt2/2y(t)=v*sin(α)*t-g*t^2/2

给定mm堵墙墙顶坐标(xi,yi)(x_i,y_i),墙垂直于xx坐标轴,炮弹如果打到墙上,就会卡住;如果掉到地上,也不会再滚动。

求这nn发炮弹最终的位置

输入格式:

第一行两个整数,即n,v(1<=n<=104,1<=v<=1000)n,v(1<=n<=10^4,1<=v<=1000)

下面nn行,每行一个实数,即每发炮弹的αα

再一行,一个整数,即m(1<=m<=105)m(1<=m<=10^5)

下面mm行,每行两个实数,即xi,yi(1<=xi,yi<=1000)x_i,y_i(1<=x_i,y_i<=1000)

输出格式:

nn行,每行两个实数,即这发炮弹最后的坐标,误差不超过10410^{-4}即可

感谢@守望 提供翻译

题目描述

Bertown is under siege! The attackers have blocked all the ways out and their cannon is bombarding the city. Fortunately, Berland intelligence managed to intercept the enemies' shooting plan. Let's introduce the Cartesian system of coordinates, the origin of which coincides with the cannon's position, the Ox Ox axis is directed rightwards in the city's direction, the Oy Oy axis is directed upwards (to the sky). The cannon will make n n more shots. The cannon balls' initial speeds are the same in all the shots and are equal to V V , so that every shot is characterized by only one number alphai alpha_{i} which represents the angle at which the cannon fires. Due to the cannon's technical peculiarities this angle does not exceed 45 45 angles ( π/4 π/4 ). We disregard the cannon sizes and consider the firing made from the point (0,0) (0,0) .

The balls fly according to the known physical laws of a body thrown towards the horizon at an angle:

vx(t)=Vcos(alpha) v_{x}(t)=V·cos(alpha) vy(t)=Vsin(alpha) – gt v_{y}(t)=V·sin(alpha) – g·t x(t)=Vcos(alpha)t x(t)=V·cos(alpha)·t y(t)=Vsin(alpha)t – gt2/2 y(t)=V·sin(alpha)·t – g·t^{2}/2 Think of the acceleration of gravity g g as equal to 9.8 9.8 .

Bertown defends m m walls. The i i -th wall is represented as a vertical segment (xi,0)(xi,yi) (x_{i},0)-(x_{i},y_{i}) . When a ball hits a wall, it gets stuck in it and doesn't fly on. If a ball doesn't hit any wall it falls on the ground ( y=0 y=0 ) and stops. If the ball exactly hits the point (xi,yi) (x_{i},y_{i}) , it is considered stuck.

Your task is to find for each ball the coordinates of the point where it will be located in the end.

输入格式

The first line contains integers n n and V V ( 1<=n<=104,1<=V<=1000 1<=n<=10^{4},1<=V<=1000 ) which represent the number of shots and the initial speed of every ball. The second line contains n n space-separated real numbers alphai alpha_{i} ( 0&lt;alpha_{i}&lt;π/4 ) which represent the angles in radians at which the cannon will fire. The third line contains integer m m ( 1<=m<=105 1<=m<=10^{5} ) which represents the number of walls. Then follow m m lines, each containing two real numbers xi x_{i} and yi y_{i} ( 1<=xi<=1000,0<=yi<=1000 1<=x_{i}<=1000,0<=y_{i}<=1000 ) which represent the wall’s coordinates. All the real numbers have no more than 4 decimal digits. The walls may partially overlap or even coincide.

输出格式

Print n n lines containing two real numbers each — calculate for every ball the coordinates of its landing point. Your answer should have the relative or absolute error less than 104 10^{-4} .

样例 #1

样例输入 #1

2 10
0.7853
0.3
3
5.0 5.0
4.0 2.4
6.0 1.9

样例输出 #1

5.000000000 2.549499369
4.000000000 0.378324889

样例 #2

样例输入 #2

2 10
0.7853
0.3
2
4.0 2.4
6.0 1.9

样例输出 #2

10.204081436 0.000000000
4.000000000 0.378324889