【CodeForces】[371C]Hamburgers

来源:互联网 发布:网络推广的技巧 编辑:程序博客网 时间:2024/05/22 07:40

这里写图片描述

与【CodeForces】[670D2]Magic Powder - 2类似
同样是根据判断能不能做mid个
来进行二分查找

只不过这个每个汉堡所需的材料个数
需要自己用字符串来数

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;char s[120];__int64 cnt[3];__int64 n[3];__int64 p[3];__int64 r;bool judge(__int64 x) {    __int64 t=r;    for(int i=0; i<3; i++) {        if(t/p[i]+n[i]<x*cnt[i])            return false;        else            t-=max((__int64)0,(x*cnt[i]-n[i])*p[i]);    }    return true;}int main() {    while(scanf("%s",s)!=EOF) {        cnt[0]=cnt[1]=cnt[2]=0;        int ls=strlen(s);        for(int i=0; i<ls; i++) {            if(s[i]=='B')                cnt[0]++;            else if(s[i]=='S')                cnt[1]++;            else                cnt[2]++;        }        for(int i=0; i<3; i++)            scanf("%I64d",&n[i]);        for(int i=0; i<3; i++)            scanf("%I64d",&p[i]);        scanf("%I64d",&r);        __int64 l=0,r=1e13,res;        while(l<=r) {            __int64 mid=(l+r)/2;            if(judge(mid)) {                res=mid;                l=mid+1;            } else                r=mid-1;        }        printf("%I64d\n",res);    }    return 0;}

题目地址:【CodeForces】[371C]Hamburgers

0 0
原创粉丝点击