#include<stdio.h>
int main()
{
char str[200];
int k[4];
int n[4];
int p[4];
long long r;
scanf("%s",str);
scanf("%d%d%d",&n[1],&n[2],&n[3]);
scanf("%d%d%d",&p[1],&p[2],&p[3]);
scanf("%lld",&r);
k[1]=k[2]=k[3]=0;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]=='B') k[1]++;
else if(str[i]=='S') k[2]++;
else if(str[i]=='C') k[3]++;
}
long long L=0,R,mid,money,temp,ans=0;
R=10e12;
while(L<=R)
{
mid=(L+R)/2;
money=r;
for(int i=1;i<=3;i++)
{
temp=n[i]-k[i]*mid;//所有减所需,缺为负,多为正
if(temp<0)//
{
money+=p[i]*temp;
}
if(money<0) break;
}
if(money>=0)//说明刚才在购买的过程中,还剩钱
{
ans=mid;//保留剩钱的情况下的数据
L=mid+1;
}
else
{
R=mid-1;
}
//printf("&&\n");
}
printf("%lld",ans);
return 0;
}
Hamburgers+二分
最新推荐文章于 2020-09-23 19:33:00 发布