두 벡터의 ASCII 기술이 주어지면 결과 벡터의 크기와 정도를 찾으십시오.
입력
이것은 STDIN을 통해 수신되거나 로컬 파일에서 읽거나 함수 호출을 통해 제공 될 수 있습니다. 다음은 두 개의 벡터 입력 예입니다.
^------>
|
|
|
x
이것은 북쪽으로 4 대, 동쪽으로 7 대의 변화를 나타냅니다. 모든 입력의 시작점은 x
(소수점 120
) 으로 표시됩니다 .
모든 벡터는 가로 또는 세로 선입니다.
각 벡터에는 다음 네 가지 끝점 중 하나가 있습니다.
^v<>
, 대시 (-
, 십진수 45) 또는 세로 막대 (|
, 십진수 124)로 구성됩니다.평면의 빈 점은 공백으로 채워집니다 (
, 10 진수 32).
입력은 단일 일 수 있습니다
x
.인접한 벡터는 항상 서로 수직입니다.
모든 벡터는 끝에서 끝까지입니다.
산출
이것은 결과 점 (시작점으로부터의 거리)의 변위와 시작점에 대한 점의 이동 정도입니다.
위 입력의 경우 출력은 8.06
단위와 60.3
도 여야합니다 . 각각 3 개의 유효 숫자가 있어야합니다. 유효 숫자가 3 개인 숫자의 예는 다음과 같습니다.
- 1.00
- 60.1
- 453
- 7.08
- 4.50
- 349
모든 단위 측정은입니다 <= 999
.
이 숫자는 아래 형식으로 출력되어야합니다. 위의 숫자를 사용하고 있습니다.
8.06 units @ 60.3 degrees
그 뒤에 단일 후행 공백이나 줄 바꿈이 올 수 있습니다.
입력이 x
변위가없고 변위 각이없는 단일 인 경우 출력은 빈 줄 (한 줄 바꿈 문자)이거나 다음 형식이어야합니다.
0 units @ - degrees
보너스를 받으려면 방향 -
도 잘 따라야합니다 .
보너스 2, 3 또는 둘 다 완료된 경우 출력은 아래 모델을 따르고 위와 동일한 제한을 따라야합니다.
8.06 units @ 60.3 degrees NE
정도는 표준 평면에 따라 측정해야합니다.
90
135 | 45
\|/
180 ---x---- 0
/|\
225 | 315
270
0
도는 동쪽, 1 - 89
도는 북동쪽, 90
북쪽 등입니다.
보너스
다음은 총 -50 %의 가치가 있습니다.
처리 할 수있는 각 추가 벡터에 대해 -10 %의 보너스를받습니다. 이 보너스는 최대 3 번까지 적용 할 수 있습니다. 벡터는 절대 겹치거나 교차하지 않습니다.
출력에 각도의 기본 방향 (북쪽, 남쪽, 동쪽, 서쪽)이 포함 된 경우 -10 % 보너스를받습니다.
출력에 각도의 중간 방향 (동북쪽, 북서쪽, 남동쪽, 남서쪽)이 포함 된 경우 -10 % 보너스를받습니다.
예
에:
x---->
|
v
밖:
5.39 units @ 338 degrees
선택적으로 SE
에:
<--------------^
|
|
x
밖:
15.3 units @ 169 degrees
선택적으로 NW
에:
x
|
|<-----^
| |
v------>
밖:
2.24 units @ 297 degrees
선택적으로 SE
예 (여러 벡터)
에:
x--->
|
|
v----------->
밖:
16.3 units @ 349 degrees
선택적으로 SE
에:
<-------^
| |
| |
v |
|
|
x
밖:
8.54 units @ 159 degrees
선택적으로 NW
에:
^-->
| |
| v
|
<--------x
밖:
6.32 units @ 162 degrees
선택적으로 NW
x-->
. 벡터가 교차 할 수 있습니까?
x
있습니다. 보너스를 완료하려고 시도하는 경우 둘 이상이있을 수 있지만 그보다 적지는 않습니다. 여러 벡터 입력에 대한 예제를 작성 중입니다. 입력이 없으면 벡터가 교차하지 않습니다. @ThomasKwa
x
합니까? 북서부와 북서부 사이의 경계는 무엇입니까?