#include <iostream>
using namespace std;
int N,L,M,S;
int F=0;
int a[205];
int b[205];
void dfs(int x,int money)
{
if(a[x]+M>=L&&b[x]-money<=0)
{
F=1;
return;
}
if(x==N)
return;
if(money<b[x])
return;
for(int i=1;i<=N;i++)
{
if(a[i]-a[x]<=M)
{
dfs(i,money-b[x]);
}
}
}
int main()
{
cin>>N>>L>>M>>S;
int i,j;
for(i=1;i<=N;i++)
{
cin>>a[i]>>b[i];
}
for(j=1;j<=N;j++)
{
if(a[j]<=M)
{
dfs(j,S);
}
}
if(M>=L)
F=1;
if(F==1)
cout<<"Yes";
else
cout<<"No";
}
SCAU 18718 航行
最新推荐文章于 2024-11-02 15:25:13 发布