Cod sursa(job #999512)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 20 septembrie 2013 16:37:59
Problema Plus Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;
 
#define Long long long
 
#define M(a,b) ( a>b ? a : b )
#define m(a,b) ( a<b ? a : b )
 
Long S,A,B,C,a,b,c;
Long Big,Low,big,low;
Long Number,Nr;
 
ifstream F("plus.in");
ofstream G("plus.out");
 
int main()
{
    F>>S;
    F>>a>>A;
    F>>b>>B;
    F>>c>>C;
     
    Big=M(0,b*B),big=M(0,c*C);
    Low=m(0,b*B),low=m(0,c*C);
     
    for (int i=0;i<=a;++i,S-=A)
        if ( B==0 )
        {
            if ( C==0 ) 
                Number += (S==0)*(b+1)*(c+1);
            if ( C!=0 ) 
                Nr=S/C, Number += (Nr<=c && Nr>=0)*(b+1); 
        }
        else
        {
            if ( C==0 ) 
                Nr=S/B, Number += (Nr>=0 && Nr<=b)*(c+1);
            if ( C!=0 ) 
                Number += M( 0, m(S-Low,big) - M(S-Big,low) +1 );
        }
     
    G<<Number<<'\n';
}