2つのベクトルのASCIIアートが与えられた場合、結果のベクトルの大きさと次数を見つけます。
入力
これは、STDIN経由で受信したり、ローカルファイルから読み取ったり、関数呼び出しで提供したりできます。2つのベクトル入力の例を次に示します。
^------>
|
|
|
x
これは、北4ユニットと東7ユニットの変更を表します。すべての入力の開始点はx
(10進数120
)で表されます。
すべてのベクトルは水平線または垂直線です。
各ベクトルには、次の4つのエンドポイント
^v<>
のいずれかがあります:、ダッシュ(-
、10進数45)または垂直バー(|
、10進数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
です。3つ以上(ボーナスを完了しようとする場合)がありますが、それ以上ではありません。複数のベクトル入力の例に取り組んでいます。入力がない場合、ベクトルは交差しません。@ThomasKwa
x
ですか?北と北西の境界は何ですか?