Cod sursa(job #778480)

Utilizator danalex97Dan H Alexandru danalex97 Data 14 august 2012 21:09:01
Problema Plus Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 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';
}