Cod sursa(job #1058473)

Utilizator sleepaholicNeculaescu Theodor sleepaholic Data 15 decembrie 2013 16:25:10
Problema Plus Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 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';
}