码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces 371C Hanburgers

时间:2017-06-16 17:33:42      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:har   ret   blog   using   std   sam   i++   check   int   

Can I use Chinese? <br/>
这个题是一道二分题目 <br/>
he question is a two-point question. <br/>
题意很简单,不需要解释了 <br/>
It is very simple, do not need to explain. <br/>
但是我一直没过样例,原因是我的变量类型搞错了 <br/>
But I haven‘t had the sample because my variables are wrong. <br/>
应该是`long long`,但是我写成了`int` <br/>
It should be `long long`, but I use the `int`. <br/>
下面是代码 <br/>
Next is my code. <br/>

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int q[5]; // B C S
int c[5];
int m[5];
char s[110];
int B,C,S;
long long tot,ans;
int check(long long n)
{
    long long tmp=tot;
    if(n*c[1]>q[1])    tmp-=(n*c[1]-q[1])*m[1];
    if(n*c[2]>q[2])    tmp-=(n*c[2]-q[2])*m[2];
    if(n*c[3]>q[3])    tmp-=(n*c[3]-q[3])*m[3];
    if(tmp>=0)
        return 1;
    else
        return 0;
}
int main()
{
    cin>>s;
    for(int i=0;i<strlen(s);i++)
    {
    if(s[i]==B)    c[1]++;
    if(s[i]==S)    c[2]++;
    if(s[i]==C)    c[3]++;
    }
    cin>>q[1]>>q[2]>>q[3];
    cin>>m[1]>>m[2]>>m[3];
    cin>>tot;
    int d=tot;
    long long l=1,r=2333333333333;
    long long mid;
    while(l<=r)
    {
        mid=(l+r)/2;
        if(check(mid))
        l=mid+1,ans=mid;
        else    r=mid-1;
    }
    cout<<ans;
    return 0;

}
        

 



Codeforces 371C Hanburgers

标签:har   ret   blog   using   std   sam   i++   check   int   

原文地址:http://www.cnblogs.com/oiersyp/p/7028420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!