分析:
推公式,需要每一块蛋糕的范围完全覆盖巧克力范围,假设蛋糕一共移动了距离d,那么则
对于每一个i都有a[i]-w+d<=b[i]-h<=b[i]+h<=a[i]+w+d,解得b[i]+h-a[i]-w<=b[i]-h-a[i]+w。只需要判断不等式是否成立就可以求解。
代码:
#include <bits/stdc++.h>
#define int long long
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
signed main()
{
ios::sync_with_stdio(false),cin.tie(),cout.tie(0);
int _;
cin>>_;
while(_--)
{
int n,w,h;
cin>>n>>w>>h;
vector<int> a(n),b(n);
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++) cin>>b[i];
int maxn=-1e9;
int minn=1e9;
for(int i=0;i<n;i++)
{
maxn=max(b[i]+h-a[i]-w,maxn);
minn=min(b[i]-h-a[i]+w,minn);
}
if(maxn<=minn) cout<<"YES"<<'\n';
else cout<<"NO"<<'\n';
}
return 0;
}