codeforces 371c

#include<stdio.h>
int main() {
char s[200];
__int64  r,nb,ns,nc,pb,ps,pc,i,sum,tob,tos,toc;
while(scanf("%s",s)!=EOF) {
scanf("%I64d%I64d%I64d",&nb,&ns,&nc);
scanf("%I64d%I64d%I64d",&pb,&ps,&pc);
scanf("%I64d",&r);
sum=0;tob=0,toc=0,tos=0;
for(i=0;s[i];i++) {
if(s[i]=='B')
tob++;
if(s[i]=='S')
tos++;
if(s[i]=='C')
toc++;
}
sum=0;
while(1) {
if(tob==0) //
nb=0;
else {
if(nb>=tob)
nb-=tob;
else {
if(r/pb+nb>=tob) {
r=r-(tob-nb)*pb;
nb=0;
}
else
break;
}
}
if(tos==0)//
ns=0;
else {
if(ns>=tos) 
ns-=tos;
else {
if(r/ps+ns>=tos) {
r=r-(tos-ns)*ps;
ns=0;
}
else
break;
}
}
if(toc==0)//
nc=0;
else {
if(nc>=toc)
nc-=toc;
else {
if(r/pc+nc>=toc) {
r=r-(toc-nc)*pc;
nc=0;
}
else
break;
}
}
sum++;
if(nb==0&&ns==0&&nc==0)//注意可能只有一种二种字母
break;
}
if(nb==0&&nc==0&&ns==0) {
r=r/(pb*tob+pc*toc+ps*tos);
sum+=r;
}
printf("%I64d\n",sum);
}
return 0;
}
posted @ 2013-12-09 19:24  HYDhyd  阅读(119)  评论(0编辑  收藏  举报