这不是一道难题,但是一次AC还是不易的,因为有些细节问题很容易忽略,首先可以两题答错(x=0),也可以只答对一题,也可以两题皆对。
AC code
#include <iostream>
using namespace std;
int main()
{
int x,t,a,b,da,db,i;
double ta,tb;
bool flag;
while(cin>>x>>t>>a>>b>>da>>db)
{
flag=false;
if(x==0) flag=true;
for(i=0;i<t && !flag;i++)
{
int m=x-(a-i*da);
if(m==0 || m==b)
{
flag=true;
}
else if(m>0 && m<b)
{
tb=1.0*(b-m)/db;
if((int)tb==tb && tb>=0 && tb<t)
{
flag=true;
}
}
}
for(i=0;i<t && !flag;i++)
{
int m=x-(b-i*db);
if(m==0 || m==a)
{
flag=true;
}
else if(m>0 && m<a)
{
ta=1.0*(a-m)/da;
if((int)ta==ta && ta>=0 && ta<t)
{
flag=true;
}
}
}
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}