Cod sursa(job #173336)

Utilizator razvi9Jurca Razvan razvi9 Data 7 aprilie 2008 17:38:53
Problema Plus Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<cstdio>
long long a,b,c,na,nb,nc,i,nr,s,number;
long long m(long long a,long long b)
{
	if(a<b) return a;
	return b;
}
long long M(long long a,long long b)
{
	if(a>b) return a;
	return b;
}
int main()
{
	freopen("plus.in","r",stdin);
	freopen("plus.out","w",stdout);
	scanf("%lld",&s);
	scanf("%lld %lld",&na,&a);
	scanf("%lld %lld",&nb,&b);
	scanf("%lld %lld",&nc,&c);
	s+=a;
	for(i=0;i<=na;i++)
	{
		s-=a;
		if(b==0)
			if(c==0)
				number+= (s==0)*(nb+1)*(nc+1);
			else
			{
				nr=s/c;
				number += (nr<=nc && nr>=0)*(nb+1);
			}
		else
			if(c==0)
			{
				nr=s/b;
				number += (nr>=0 && nr<=nb)*(nc+1);
			}
			else
			{
					
				number+=M(0,m(s-(b==1?nb:0),c==1?nc:0)-M(s-(b==1?0:-nb),c==1?0:-nc)+1);
			}
	}
	printf("%lld\n",number);
	fclose(stdout);
	return 0;
}