起重机

TimeLimit:2000MS  MemoryLimit:6553MB
64-bit integer IO format:%lld
Special Judge
未提交 | 登录后收藏 | 已有4人收藏了本题
Problem Description

home_W 购买了一台新的起重机。起重机由各种长度的n个段组成,段之间通过柔性关节连接。第i个分段的尾部连接到第i + 1个分段的头部,1≤i<n。第一段的头部固定在坐标(0,0)的点处,并且其尾部在坐标(0,w)的点处,其中w是第一段的长度。所有的段总是位于一个平面中,并且关节可以在该平面中的任意旋转。在发生了一系列令人不快的事故后,home_W 决定控制起重机的软件必须包含一段代码,用于不断检查起重机末端的位置,如果碰撞发生,停止起重机。

你的任务是写这个软件的一部分,确定每个命令后第n段尾部的位置。起重机的状态由相邻段之间的角度确定。最初,所有相邻段之间的角度都是直的,即180°。操作者每次发出的命令仅改变其中一个关节的角度

Input

输入由多组样例组成,由单个空行分隔。

每个实例的第一行由两个整数1≤n≤10000和c<=20000 组成 - 起重机的段数和命令数。 第二行由用单个空格分隔的n个整数l1,...,ln(1<=li<=100)组成,起重机的第i段的长度为li接下来c行是操作员的命令。 描述命令的每一行由两个整数s和a(1≤s<n,0≤a≤359)组成 -,代表将第s个和第s + 1个段之间的角度改成a度 (从s到第s + 1段间的逆时针角度)。

Output

每个案例的输出由C行组成。每行由单个空格分隔的两个有理数x和y组成 - 代表第i个命令后的第n个段的尾部的坐标,四舍五入到小数点后两位。(误差不超过0.01就算正确)
每两个连续案例的输出必须由一个空行分隔。

SampleInput
2 1
10 5
1 90

3 2
5 5 5
1 270
2 90

10 1
2 8 5 1 10 5 9 9 3 5 
3 305
SampleOutput
5.00 10.00

-10.00 5.00
-5.00 10.00

-34.40 -9.09
Submit
题目统计信息详细
总AC数18
通过人数6
尝试人数9
总提交量31
AC率19.35%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: