Cod sursa(job #1201319)

Utilizator enedumitruene dumitru enedumitru Data 24 iunie 2014 21:13:32
Problema Plus Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<fstream>
#define ll long long
using namespace std;
ifstream f("plus.in"); ofstream g("plus.out");
ll a,b,c,na,nb,nc,i,q,s,nr,lc,lb,rc,rb;
ll max(ll a, ll b) {return (a<b?b:a);}
ll min(ll a, ll b) {return (a<b?a:b);}
int main()
{	f>>s>>na>>a>>nb>>b>>nc>>c;
	s+=a;
	rb=max(0,b*nb); rc=max(0,c*nc);
	lb=min(0,b*nb); lc=min(0,c*nc);
	for(i=0;i<=na;i++)
	{	s-=a;
		if(b==0)
			if(c==0) nr+=(s==0)*(nb+1)*(nc+1); 
				else  {q=s/c; nr+=(q<=nc && q>=0)*(nb+1);}
		else if(c==0) {q=s/b; nr+=(q>=0 && q<=nb)*(nc+1);} 
				else nr+=max(0,min(s-lb,rc)-max(s-rb,lc)+1);
	}
	g<<nr<<"\n"; g.close(); return 0;
}