题目大意:给你一个字符串表示一个汉堡的结构,一个汉堡由BSC三个字母组成,然后给你你有的BSC原料的数目,和如果要购买BSC的价格。告诉你你所拥有的金钱,问最多能做出几个汉堡。
思路:很明显这符合单调性,可以直接二分出能做几个汉堡,check也很好写,基本是个二分模板题。
AC程序:
//库省略using namespace std;int b,s,c;ll nb,ns,nc;int cb,cs,cc;string ss;ll mon;bool check(ll num){ ll bb=(num*b-nb)*cb,ss=(num*s-ns)*cs,ccc=(num*c-nc)*cc; if(bb<0) bb=0; if(ss<0) ss=0; if(ccc<0) ccc=0; if (bb+ss+ccc<=mon) return 1; return 0;}int main(){ cin>>ss; for(int i=0;i>nb>>ns>>nc; cin>>cb>>cs>>cc; cin>>mon; ll l=0,r=1e14,mid; while(l