問題一覧 >
通常問題
No.2179 Planet Traveler
問題文最終更新日: 2024-11-28 20:36:40
問題文
二次元平面上の宇宙に 1 個の恒星と 1,2,…,N の番号が付いた N 個の惑星があります。
恒星は常に座標 (0,0) にありますが、惑星 i (1≤i≤N) は最初座標 (Xi,Yi) に位置し、
Ti 年ごとに反時計回りに一回転する角速度で、先の恒星を中心とした半径・角速度一定の円運動を行います。
ただし、異なる 2 個の惑星が同じ座標となった場合でも衝突は起きず、上記の軌道は変化しないものとします。
魔法使いのコアさんの目的は、転移魔法を使い、0 個以上の惑星を経由して惑星 1 から惑星 N へ移動することです。
コアさんの魔法レベルは整数 s で表され、最初 s=0 です。コアさんが訓練を
1 回行う度に s は 1 増加します。
そして、次の条件を満たすならば、またその場合に限り、コアさんは惑星 i から惑星 j
(1≤i,j≤N かつ i=j) に直接移動できます。
惑星 i,j 間のユークリッド距離の取り得る最小値が s 以下である。
「ユークリッド距離」の定義(クリックで展開)
二次元平面上の任意の 2 点 P1(x1,y1), P2(x2,y2) について、
これら 2 点間のユークリッド距離 L2(P1,P2) は次のように定義されます。
L2(P1,P2):=(x1−x2)2+(y1−y2)2
コアさんが先の目的を達成するためには、最小で何回の訓練を行う必要がありますか?
制約
2≤N≤800
−2×104≤Xi,Yi≤2×104 (1≤i≤N)
(Xi,Yi)=(0,0) (1≤i≤N)
(Xi,Yi)=(Xj,Yj) (1≤i<j≤N)
1≤Ti≤109 (1≤i≤N)
入力はすべて整数
入力
入力は次の形式で与えられます。
N
X1 Y1 T1
X2 Y2 T2
⋮
XN YN TN
1 行目には N が与えられる
(1+i) (1≤i≤N) 行目には Xi,Yi,Ti がこの順に半角スペース区切りで与えられる
サンプル
サンプル1
入力
3
1 1 3
0 3 4
-5 -5 3
出力
17
例えば、次のような移動経路を考えれば良いです。
惑星 1 → 惑星 2
惑星 2 → 惑星 3
このとき、最初の状態からの経過年数を t とすると、惑星 1,2 間のユークリッド距離の最小値 d1 は
d1=3−2
(例えば t=23 のとき)
惑星 2,3 間のユークリッド距離の最小値 d2 は
d2=52−3
(例えば t=215 のとき)
であり、
max(d1,d2)=52−3≈4.07
なので、上の経路を採用する場合、s は 17 以上である必要があります。
s<17 のとき、惑星 1 から惑星 3 への移動経路は存在しません。
サンプル2
入力
4
10 10 100
-1 -1 100
-5 -5 100
3 3 100
出力
98
惑星 1 から惑星 4 に直接移動すれば良いです。
必ずしもすべての惑星を経由する必要はありません。
サンプル3
入力
2
4 3 2
-5 0 5
出力
0
2 個の惑星の座標が等しくなることもあります。
サンプル4
入力
2
20000 20000 1000000000
-20000 -20000 1000000000
出力
3200000000
答えは32bit整数型に収まらない可能性があります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。