結果
問題 |
No.871 かえるのうた
|
ユーザー |
![]() |
提出日時 | 2021-09-07 00:33:44 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 37 ms / 2,000 ms |
コード長 | 776 bytes |
コンパイル時間 | 250 ms |
コンパイル使用メモリ | 29,056 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-30 11:06:34 |
合計ジャッジ時間 | 2,411 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 49 |
ソースコード
#include<stdio.h> int main() { int n, k; scanf("%d %d", &n, &k); k--; int i, j; long long int x[100005], a[100005]; for (i = 0; i < n; i++) scanf("%lld", &x[i]); for (i = 0; i < n; i++) scanf("%lld", &a[i]); int ans = 1; long long int left, right; i = j = k; left = x[k] - a[k]; right = x[k] + a[k]; for (;;) { if (i > 0) { if (left <= x[i - 1]) { ans++; i--; if (left > x[i] - a[i]) left = x[i] - a[i]; if (right < x[i] + a[i]) right = x[i] + a[i]; continue; } } if (j < n - 1) { if (x[j + 1] <= right) { ans++; j++; if (left > x[j] - a[j]) left = x[j] - a[j]; if (right < x[j] + a[j]) right = x[j] + a[j]; continue; } } break; } printf("%d\n", ans); return 0; }