読解がちょっと大変......今の時代の問題文の方がわかりやすいね。
問題概要
高橋君は最高速度 で移動することができる。
高橋君は時刻 に地点
を出発し、時刻
に地点
に到達しました。
その過程で 個の地点
,
,
のいずれかに寄り道した可能性が示唆されている。そのよなことが移動速度の観点から可能かどうかを判定せよ。
制約
考えたこと
各 に対して、
から
への移動距離と
から
への移動距離の合計値を求めていきましょう。
そのうちの最小値を速度 で移動したときに、
秒以内におさまれば可能です。
計算量は となります。
コード
#include <bits/stdc++.h> using namespace std; int main() { double sx, sy, tx, ty, T, V; cin >> sx >> sy >> tx >> ty >> T >> V; int N; cin >> N; double Min = 1LL<<60; for (int i = 0; i < N; ++i) { double X, Y; cin >> X >> Y; double tmp1 = sqrt( (X - sx) * (X - sx) + (Y - sy) * (Y - sy) ); double tmp2 = sqrt( (X - tx) * (X - tx) + (Y - ty) * (Y - ty) ); Min = min(Min, tmp1 + tmp2); } if (Min <= T * V) puts("YES"); else puts("NO"); }