#pragma region #pragma GCC target("avx2") #pragma GCC optimize("03") #pragma GCC optimize("unroll-loops") #include using namespace std; typedef long double ld; typedef long long ll; typedef unsigned long long ull; #define endl "\n" #define FOR(i,a,b) for(int i=(a);i<=(b);i++) #define rep(i,a,b) for(int i=(a);i<(b);i++) #define PII pair #define PLL pair #define ALL(x) (x).begin(), (x).end() constexpr int INF=1<<30; constexpr ll LINF=1LL<<60; constexpr ll mod=1e9+7; constexpr int NIL = -1; templateinline bool chmax(T &a, const T &b) { if (ainline bool chmin(T &a, const T &b) { if (b> n >> k; rep(i,0,n) cin >> x[i]; rep(i,0,n) cin >> a[i]; ll left, right; k--; left = x[k] - a[k]; right = x[k] + a[k]; int cnt = 1; int r_idx, l_idx; r_idx = k + 1; l_idx = k -1; while(true) { bool updated = false; if(l_idx >= 0 and x[l_idx] >= left) { cnt++; chmin(left, x[l_idx]-a[l_idx]); chmax(right, x[l_idx] + a[l_idx]); updated = true; l_idx--; } if(r_idx < n and x[r_idx] <= right) { cnt++; chmin(left, x[r_idx]-a[r_idx]); chmax(right, x[r_idx]+a[r_idx]); updated = true; r_idx++; } if(!updated) break; } cout << cnt << endl; return 0; }