結果
問題 |
No.871 かえるのうた
|
ユーザー |
|
提出日時 | 2019-08-30 22:02:54 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 770 bytes |
コンパイル時間 | 1,953 ms |
コンパイル使用メモリ | 192,936 KB |
最終ジャッジ日時 | 2025-01-07 15:54:06 |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 39 WA * 10 |
ソースコード
#define _USE_MATH_DEFINES #include <bits/stdc++.h> using namespace std; bool vis[101010]; long long x[101010], a[101010]; int n, k; void dfs(int cur) { if (vis[cur]) return; vis[cur] = true; long long lo = x[cur] - a[cur]; long long hi = x[cur] + a[cur]; int l = upper_bound(x, x + n, lo) - x; int r = (upper_bound(x, x + n, hi) - x); for (int i = l - 1; i <= r + 1; i++) { if (i < n && i > 0 && !vis[i] && x[i] >= lo && x[i] <= hi) dfs(i); } } signed main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n >> k; k--; for (int i = 0; i < n; i++) { cin >> x[i]; } for (int i = 0; i < n; i++) { cin >> a[i]; } dfs(k); int ans = 0; for (int i = 0; i < n; i++) { ans += vis[i]; } cout << ans << endl; return 0; }