Hamburgers 假定解是否可行

系统 2735 0
Hamburgers
Time Limit: 1000MS      Memory Limit: 262144KB      64bit IO Format: %I64d & %I64u
Submit   Status

Description

Polycarpus loves hamburgers very much. He especially adores the hamburgers he makes with his own hands. Polycarpus thinks that there are only three decent ingredients to make hamburgers from: a bread, sausage and cheese. He writes down the recipe of his favorite "Le Hamburger de Polycarpus" as a string of letters ' B' (bread), ' S' (sausage) и ' C' (cheese). The ingredients in the recipe go from bottom to top, for example, recipe " ВSCBS" represents the hamburger where the ingredients go from bottom to top as bread, sausage, cheese, bread and sausage again.

Polycarpus has  n b  pieces of bread,  n s  pieces of sausage and  n c  pieces of cheese in the kitchen. Besides, the shop nearby has all three ingredients, the prices are  p b  rubles for a piece of bread,  p s  for a piece of sausage and  p c  for a piece of cheese.

Polycarpus has  r  rubles and he is ready to shop on them. What maximum number of hamburgers can he cook? You can assume that Polycarpus cannot break or slice any of the pieces of bread, sausage or cheese. Besides, the shop has an unlimited number of pieces of each ingredient.

Input

The first line of the input contains a non-empty string that describes the recipe of "Le Hamburger de Polycarpus". The length of the string doesn't exceed 100, the string contains only letters ' B' (uppercase English  B), ' S' (uppercase English  S) and ' C' (uppercase English  C).

The second line contains three integers  n b n s n c  ( 1 ≤  n b ,  n s ,  n c  ≤ 100) — the number of the pieces of bread, sausage and cheese on Polycarpus' kitchen. The third line contains three integers  p b p s p c  ( 1 ≤  p b ,  p s ,  p c  ≤ 100) — the price of one piece of bread, sausage and cheese in the shop. Finally, the fourth line contains integer  r  ( 1 ≤  r  ≤ 10 12 ) — the number of rubles Polycarpus has.

Please, do not write the  %lld specifier to read or write 64-bit integers in С++. It is preferred to use the  cin,  cout streams or the  %I64dspecifier.

Output

Print the maximum number of hamburgers Polycarpus can make. If he can't make any hamburger, print  0.

Sample Input

Input
            BBBSSC
            
6 4 1
1 2 3
4
Output
            2
          
Input
            BBC
            
1 10 1
1 10 1
21
Output
            7
          
Input
            BSC
            
1 1 1
1 1 3
1000000000000
Output
            200000000001
          
                
                   1
                
                 #include <stdio.h>


                
                   2
                
                 #include <
                
                  string
                
                .h>


                
                   3
                
                
                   4
                
                
                  const
                
                
                  int
                
                 inf=
                
                  0x3f3f3f3f
                
                
                  ;


                
                
                   5
                
                
                  const
                
                
                  long
                
                
                  long
                
                 INF=1e14+
                
                  7
                
                
                  ;


                
                
                   6
                
                
                  char
                
                 a[
                
                  105
                
                
                  ];


                
                
                   7
                
                
                  long
                
                
                  long
                
                
                   b,s,c,nb,ns,nc,pb,ps,pc,r;


                
                
                   8
                
                
                   9
                
                
                  bool
                
                 C(
                
                  long
                
                
                  long
                
                
                   x)


                
                
                  10
                
                
                  {


                
                
                  11
                
                
                  long
                
                
                  long
                
                
                   rb,rs,rc;


                
                
                  12
                
                     rb=(x*b-nb)>=
                
                  0
                
                ?(x*b-nb):
                
                  0
                
                ,rs=(x*s-ns)>=
                
                  0
                
                ?(x*s-ns):
                
                  0
                
                ,rc=(x*c-nc)>=
                
                  0
                
                ?(x*c-nc):
                
                  0
                
                
                  ;


                
                
                  13
                
                
                  if
                
                ((rb*pb+rs*ps+rc*pc)<=
                
                  r)


                
                
                  14
                
                
                  return
                
                
                  true
                
                
                  ;


                
                
                  15
                
                
                  else
                
                
                  16
                
                
                  return
                
                
                  false
                
                
                  ;


                
                
                  17
                
                
                  }


                
                
                  18
                
                
                  19
                
                
                  int
                
                
                   main()


                
                
                  20
                
                
                  {


                
                
                  21
                
                
                  int
                
                
                   i,j,k;


                
                
                  22
                
                
                  while
                
                (scanf(
                
                  "
                
                
                  %s
                
                
                  "
                
                ,a)!=
                
                  EOF)


                
                
                  23
                
                
                      {


                
                
                  24
                
                         b=
                
                  0
                
                ,s=
                
                  0
                
                ,c=
                
                  0
                
                
                  ;


                
                
                  25
                
                
                  for
                
                (i=
                
                  0
                
                ;a[i]!=
                
                  '
                
                
                  \0
                
                
                  '
                
                ;i++
                
                  )


                
                
                  26
                
                
                          {


                
                
                  27
                
                
                  if
                
                (a[i]==
                
                  '
                
                
                  B
                
                
                  '
                
                
                  )


                
                
                  28
                
                                 b++
                
                  ;


                
                
                  29
                
                
                  else
                
                
                  if
                
                (a[i]==
                
                  '
                
                
                  S
                
                
                  '
                
                
                  )


                
                
                  30
                
                                 s++
                
                  ;


                
                
                  31
                
                
                  else
                
                
                  if
                
                (a[i]==
                
                  '
                
                
                  C
                
                
                  '
                
                
                  )


                
                
                  32
                
                                 c++
                
                  ;


                
                
                  33
                
                
                          }


                
                
                  34
                
                
                  //
                
                
                  printf("%d %d %d",b,s,c);
                
                
                  35
                
                         scanf(
                
                  "
                
                
                  %I64d %I64d %I64d %I64d %I64d %I64d
                
                
                  "
                
                ,&nb,&ns,&nc,&pb,&ps,&
                
                  pc);


                
                
                  36
                
                         scanf(
                
                  "
                
                
                  %I64d
                
                
                  "
                
                ,&
                
                  r);


                
                
                  37
                
                
                  long
                
                
                  long
                
                 lb=
                
                  0
                
                ,ub=
                
                  INF;


                
                
                  38
                
                
                  39
                
                
                  while
                
                (ub-lb>
                
                  1
                
                
                  )


                
                
                  40
                
                
                          {


                
                
                  41
                
                
                  long
                
                
                  long
                
                 mid=(lb+ub)/
                
                  2
                
                
                  ;


                
                
                  42
                
                
                  if
                
                
                  (C(mid))


                
                
                  43
                
                                 lb=
                
                  mid;


                
                
                  44
                
                
                  else
                
                
                  45
                
                                 ub=
                
                  mid;


                
                
                  46
                
                
                          }


                
                
                  47
                
                
                  48
                
                         printf(
                
                  "
                
                
                  %I64d\n
                
                
                  "
                
                
                  ,lb);


                
                
                  49
                
                
                      }


                
                
                  50
                
                
                  51
                
                
                  return
                
                
                  0
                
                
                  ;


                
                
                  52
                
                 }
              
View Code

 

Hamburgers 假定解是否可行


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论