#include<iostream>#include<fstream>usingnamespacestd;typedeflonglongll;std::ofstreamscore("score.txt");template<typenameT>inlinevoidassert(constT&condition,conststd::string&message){if(!condition){std::cerr<<message<<std::endl;score<<0<<std::endl;exit(0);}}intmain(intargc,char**argv){std::ifstreamdatin("input");intt;datin>>t;cout<<t<<endl<<flush;intsum=0;for(inti=1;i<=t;i++){llk,a,n,m;datin>>k>>a>>n>>m;cout<<n<<' '<<m<<endl<<flush;intcnt=0;while(true){charc;llx1,x2;assert(cin>>c>>x1>>x2,"Invalid input!");if(c=='?'){if(cnt>=31){score<<0<<endl;cerr<<"you have asked more than 31 times!"<<endl;exit(0);}if(x1>x2){cerr<<"your x1 is "<<x1<<" and your x2 is "<<x2<<' '<<"so input out of range!"<<endl;score<<0<<endl;exit(0);}if(x1<n||x2>m){cerr<<"your x1 is "<<x1<<" and your x2 is "<<x2<<' '<<"so input out of range!"<<endl;score<<0<<endl;exit(0);}llnow1=x1*k,now2=x2*k;if(x1>a)now1-=k;if(x2>a)now2-=k;++cnt;++sum;cout<<now2-now1<<endl<<flush;}else{if(x1==k&&x2==a){break;}else{cerr<<"not good!~_~"<<"your guess k is "<<x1<<" and your guess a is "<<x2<<" so your answer is wrong!"<<endl;score<<0<<endl;}exit(0);}}}cerr<<"Delicious! "<<sum<<" time(s) guess."<<endl;score<<100<<endl;return0;}
共 2 条回复
E的输入并不是文件输入,而是交互器给出的。
E的交互器代码如下