Pagini recente » Romanian Master in Mathematics and Sciences 2011, Clasament zi 1 | Cod sursa (job #2323903) | Cod sursa (job #3158419) | Cod sursa (job #3193304) | Cod sursa (job #2333293)
#include<fstream>
using namespace std;
ifstream fi("plus.in");
ofstream fo("plus.out");
int sum,nra,nrb,nrc,va,vb,vc,i,aux;
long long rez;
int main()
{
fi>>sum;
fi>>nra>>va;
fi>>nrb>>vb;
fi>>nrc>>vc;
for(i=0; i<=nra; i++)
{
sum=sum-va*i;
if(vb==0)
{
if(vc==0 && sum==0)
rez=rez+1LL*(nrb+1)*(nrc+1);
if((vc<0 && sum<=0 && vc*nrc<=sum) || (vc>0 && sum>=0 && vc*nrc>=sum))
rez=rez+1LL*(nrb+1);
continue;
}
if(vb!=vc)
{
if(vc==0)
{
if((vb<0 && sum<=0 && vb*nrb<=sum) || (vb>0 && sum>=0 && vb*nrb>=sum))
rez=rez+1LL*(nrc+1);
continue;
}
if(vb==-1)
{
swap(vb,vc);
swap(nrb,nrc);
}
if(sum<0)
rez=rez+1LL*min(nrb+1,max(0,nrc+sum+1));
else
rez=rez+1LL*min(max(0,nrb-sum+1),nrc+1);
}
else
{
if(vb*sum<0 || nrb+nrc<vb*sum)
continue;
aux=vb*sum;
aux-=nrb;
aux=max(aux,0);
rez=rez+1LL*min(nrc-aux+1,min(nrb,sum)+1);
}
sum=sum+va*i;
}
fo<<rez<<"\n";
fi.close();
fo.close();
return 0;
}