結果
問題 | No.871 かえるのうた |
ユーザー |
|
提出日時 | 2019-08-30 23:20:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 121 ms / 2,000 ms |
コード長 | 752 bytes |
コンパイル時間 | 483 ms |
コンパイル使用メモリ | 64,424 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-30 10:50:50 |
合計ジャッジ時間 | 3,403 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 49 |
ソースコード
#include <iostream> const int MAXN = 112345; long long X[MAXN]; long long A[MAXN]; int main() { int N, K; std::cin >> N >> K; --K; for (int i = 0; i < N; ++i) { std::cin >> X[i]; } for (int i = 0; i < N; ++i) { std::cin >> A[i]; } int li = K; int ri = K; long long lv = X[K] - A[K]; long long rv = X[K] + A[K]; bool upd = true; while (upd) { upd = false; if (0 < li && lv <= X[li - 1]) { --li; lv = std::min(lv, X[li] - A[li]); rv = std::max(rv, X[li] + A[li]); upd = true; } if (ri < N - 1 && X[ri + 1] <= rv) { ++ri; lv = std::min(lv, X[ri] - A[ri]); rv = std::max(rv, X[ri] + A[ri]); upd = true; } } std::cout << ri - li + 1 << std::endl; }