Cod sursa(job #117216)

Utilizator DastasIonescu Vlad Dastas Data 20 decembrie 2007 22:41:59
Problema Bilute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>

FILE *in = fopen("plus.in","r"), *out = fopen("plus.out","w");

int s;
int a, b,
    c, d,
    e, f;

long long sol;

int main()
{
    fscanf(in, "%d\n%d %d\n%d %d\n%d %d\n", &s, &a,&b,&c,&d,&e,&f);

    for ( int i = 0; i <= a; ++i )
        for ( int j = 0; j <= c; ++j )
        {
            int st = -1, dr = e+1;
            long long m = 0;
            long long t = i*b + j*d;

            while ( st < dr )
            {
                m = (st + dr) / 2;

                if ( t + m*f == s )
                {
                    ++sol;
                    break;
                }
                else if ( t + m*f < s )
                    st = m+1;
                else
                    dr = m;
            }
        }

    fprintf(out, "%lld\n", sol);

	return 0;
}