[ create a new paste ] login | about

Link: http://codepad.org/qiYlv3hp    [ raw code | output | fork ]

C, pasted on Jul 23:
#include<stdio.h>
long long check(long long n);
int nb,ns,nc,pb,ps,pc;
long long cb=0,cs=0,cc=0;
long long r;
int main()
{
    char a[105];

    int i;
    long long l,u,mid;
    scanf("%s",a);
    scanf("%d %d %d",&nb,&ns,&nc);
    scanf("%d %d %d",&pb,&ps,&pc);
    scanf("%I64d",&r);
    i=0;
    while(a[i]!='\0')
    {
        if(a[i]=='B')
            cb++;
        else if (a[i]=='S')
            cs++;
        else if(a[i]=='C')
            cc++;
            i++;
    }
  

 if(!(check(1)))
        printf("0\n");
else
    {
        while(u>=l)
        {
            l=1;
            u=r;
            mid=(l+u)>>1;
            if(check(mid))
              l=mid+1;
            else
              u=mid-1;
        }
        printf("%I64d\n",l-1);
    }
    return 0;
}
long long check(long long n)
{
    long long d,s[4];
    if(n*cb>nb)
        s[1]=n*cb-nb;
    else
        s[1]=0;
    if(n*cs>ns)
        s[2]=n*cs-ns;
    else
        s[2]=0;
    if(n*cc>nc)
        s[3]=n*cc-nc;
    else
        s[3]=0;
    d=s[1]*pb+s[2]*ps+s[3]*pc;

    if(d<=r)
        return 1;
    else
        return 0;

}


Output:
1
                                                               0


Create a new paste based on this one


Comments: