AtCoder Beginners Contest 060 C-Sentou
考察
最後の一人は必ずT秒加算されるので、答えはT以上になる。
ポイントは前の人がスイッチを押してからT秒以内かどうか判定すること。
T秒以内なら前の人の差分を、それ以外ならT秒を加算すればよい。
コード
#include <iostream> #include <algorithm> using namespace std; #define ll long long ll t[200050] = {}; int main() { ll n, T; cin >> n >> T; for (int i = 0; i < n; i++) { cin >> t[i]; } ll ans = T; for (int i = 1; i < n; i++) { ans += min(T, t[i] - t[i - 1]); } cout << ans << endl; }
実装が思いつかなったのは反省・・・