<cf>Two Problems
这不是一道难题,但是一次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; }