크레인
면접 대비시간 제한1초메모리 제한128 MB
각 명령마다 관절 하나의 각도가 바뀔 때 n번째 세그먼트 끝점의 좌표를 매번 정확히 소수 두 자리로 출력하는 문제입니다.
문제
ACM이 새 크레인을 구입했다. 이 크레인은 길이가 제각각인 마디 개가 유연한 관절로 연결되어 있다. 번째 마디의 끝은 번째 마디의 시작과 이어져 있다(). 첫 번째 마디의 시작은 좌표 에 고정되어 있고, 그 끝은 좌표 에 있다. 여기서 는 첫 번째 마디의 길이다. 모든 마디는 항상 한 평면 위에 놓이며, 관절은 그 평면 안에서 임의의 회전을 허용한다.
크레인을 제어하는 소프트웨어는 크레인 끝의 위치를 계속 확인해야 한다. 각 명령이 실행된 뒤 번째 마디 끝의 위치를 구하는 부분을 작성하라. 크레인의 상태는 이웃한 마디 사이의 각도로 결정된다. 처음에는 모든 각도가 곧게 펴져 있다. 즉 이다. 각 명령은 정확히 하나의 관절에서 각도를 바꾼다.
입력
입력은 여러 개의 인스턴스로 이루어지며, 인스턴스는 하나의 빈 줄로 구분된다.
각 인스턴스의 첫 줄에는 두 정수 과 가 공백으로 구분되어 주어진다(, ). 은 마디의 수, 는 명령의 수다. 둘째 줄에는 개의 정수 이 공백으로 구분되어 주어진다(). 는 번째 마디의 길이다. 이어지는 개의 줄에는 명령이 하나씩 주어진다. 각 줄에는 두 정수 와 가 공백으로 구분되어 주어진다(, ). 이는 번째 마디와 번째 마디 사이의 각도를 도로 바꾸라는 명령이며, 각도는 번째 마디에서 번째 마디로 반시계 방향으로 측정한다.
출력
각 인스턴스에 대해 개의 줄을 출력한다. 번째 줄에는 번째 명령을 실행한 뒤 번째 마디 끝의 좌표 와 를 공백으로 구분하여 출력한다. 각 좌표는 소수점 아래 정확히 두 자리로 출력한다. 반올림 결과가 인 좌표는 -0.00이 아니라 0.00으로 출력한다. 서로 다른 인스턴스의 출력 사이에는 빈 줄을 하나 넣는다.
원문은 정답 위치와의 차이가 이내면 정답으로 인정했으나, 여기서는 소수점 두 자리 출력값이 정확히 일치해야 한다. 주어지는 입력은 모든 좌표가 반올림 경계에서 충분히 떨어지도록 구성되어 있어, 두 자리 출력값이 항상 명확하게 정해진다.