#include "stdio.h" int main() { //変数を宣言し、配列はforで初期化する。 //役割は、順番に「koboの時速」「師匠の時速」「交差点の数」「交差点の位置(m)」。 int X = 0, Y = 0, N = 0; long A[90]; for (int i = 0; i < 90; i++) { A[i] = 0; } //scanfで変数の値を入力。 //AはforをN回やってとる scanf("%d %d",&X,&Y); scanf("%d",&N); for (int i = 0; i < N; i++) { scanf("%ld", &A[i]); } //時速を秒速に直す。これは小数になりうるので実数型で。 double rX = X/3.6, rY = Y/3.6; //変換できてるか表示テスト //printf("%f %f \n", rX, rY); //交差点の間隔が最小の2点を探す。 //Hint1はその2点のスタートに近いほうの位置、Hint2はその間隔を入れる。 //Hint3は、Hint1の位置がN-1番目だった場合のために用意する。 long Hint1 = 0, Hint2 = 100000, Hint3 = 0; for (int i = 1; i < N; i++) { if (Hint2 > A[i] - A[i - 1]) { Hint1 = A[i - 1]; Hint2 = A[i] - A[i - 1]; //ここでi+1=Nなら、N番目とN-1番目を見ていることになる if (i + 1 == N) Hint3 = 1; } } //確認 //printf("%ld %ld", Hint1,Hint2); //koboがHint1の交差点に達したときの、師匠のいる位置を見て答えを出す。 //(スタート地点から1秒ずつ進めるのだるいから最小値だけ見て結果出せたら楽だなぁ) if ( (rY*(Hint1 / rX) > Hint1 + Hint2)&&(Hint3 == 0) ) printf("NO"); else printf("YES"); return 0; }