読解がちょっと大変......今の時代の問題文の方がわかりやすいね。
問題概要
高橋君は最高速度 で移動することができる。
高橋君は時刻 に地点 を出発し、時刻 に地点 に到達しました。
その過程で 個の地点 , , のいずれかに寄り道した可能性が示唆されている。そのよなことが移動速度の観点から可能かどうかを判定せよ。
制約
考えたこと
各 に対して、 から への移動距離と から への移動距離の合計値を求めていきましょう。
そのうちの最小値を速度 で移動したときに、 秒以内におさまれば可能です。
計算量は となります。
コード
#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"); }