很简单的线性模拟,循环模拟,遇到不满足的情况就退出。
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<string>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--)
{
int city[1111];
int day[1111];
int co;
int d;
int i,j,k;
scanf("%d%d",&d,&co);
for(i=1;i<=d;i++)
scanf("%d",&city[i]);
for(i=1;i<=d-1;i++)
scanf("%d",&day[i]);
int s=city[1];
for(i=1;i<=d-1;i++)
{
if(s>=day[i]*co)
{
s-=day[i]*co;
s+=city[i+1];
}
else {
s=-1;
break;
}
}
if(s>=0)
cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}