for
文で、隣接する要素も見ながら走査していく系の問題!
問題概要
高橋君は時刻 0 にパソコンを起動し、時刻 にクリックをした。
となるとき、クリック はダブルクリックが成立したという。
ダブルクリックが最初に成立した時刻を求めよ。ただし、一度もダブルクリックが成立していないならば、-1 を出力せよ。
制約
考えたこと
for
文を用いて、 番目の要素 T[i]
を見ると同時に、その次の要素 T[i+1]
にアクセスすることもできる。そうして、
T[i+1] - T[i] <= D
を満たすとき、T[i+1]
を出力して、反復を終了すればよい。最後まで反復しても満たさなければ -1 を出力すればよい。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N, D; cin >> N >> D; vector<int> T(N); for (int i = 0; i < N; i++) cin >> T[i]; for (int i = 0; i + 1 < N; i++) { if (T[i + 1] - T[i] <= D) { cout << T[i + 1] << endl; return 0; } } cout << -1 << endl; }