Can any one help me to find the bug?
#include <bits/stdc++.h>
#include <time.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll, ll> pi;
#define pb push_back
#define f first
#define s second
const ll inf = 1e18;
const int mod = 1e9 + 7;
void solve()
{
ll n, k;
cin >> n >> k;
ll x[n];
ll p[n];
for (ll i = 0; i < n; i++)
{
cin >> x[i];
}
for (ll i = 0; i < n; i++)
{
cin >> p[i];
}
ll s = 0;
ll c = -1;
for (ll i = 0; i < n; i++)
{
s += p[i];
if (s >= x[i])
{
c = i;
break;
}
}
if (c == -1)
{
cout << "YES\n";
return;
}
ll h = 0;
ll j = 0;
ll g = 0;
for (ll i = 0; i < n && j <= c; i++)
{
if (x[j] + 2 * k >= x[i] && j <= c)
{
h += p[i];
}
else
{
while (x[j] + 2 * k < x[i] && j <= c)
{
h -= p[j];
j++;
}
if (x[j] + 2 * k >= x[i] && j <= c)
{
h += p[i];
}
}
g = max(h, g);
}
s = -g;
c = -1;
for (ll i = 0; i < n; i++)
{
s += p[i];
if (s >= x[i])
{
c = i;
break;
}
}
if (c == -1)
{
cout << "YES\n";
return;
}
cout << "NO\n";
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll T;
T = 1;
cin >> T;
while (T--)
{
solve();
}
return 0;
}