Pagini recente » Cod sursa (job #2564990) | Cod sursa (job #2223249) | Cod sursa (job #1166941) | Cod sursa (job #1852244) | Cod sursa (job #2080285)
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
FILE *fin=fopen ("plus.in","r");
FILE *fout=fopen ("plus.out","w");
long long s,n1,n2,n3,nr1,nr2,nr3,sol,i,st,dr,zero=0;
fscanf (fin,"%lld%lld%lld%lld%lld%lld%lld",&s,&n1,&nr1,&n2,&nr2,&n3,&nr3);
sol=0;
for (i=0;i<=n1;i++){
s=s-i*nr1;
if (nr2==0){
if (nr3==0){
if (s==0)
sol=sol+(n2+1)*(n3+1);
}
else if ((nr3==1 && s<=0 && s+n3>=0) || (nr3==-1 && s>=0 && s-n3<=0))
sol=sol+(n2+1)*1;
}
else if (nr3==0){
if ((nr2==1 && s<=0 && s+n2>=0) || (nr2==-1 && s>=0 && s-n2<=0))
sol=sol+(n3+1)*1;
}
else {
st=(s-n3*nr3)/nr2;
dr=s/nr2;
if (st>dr)
swap(st,dr);
// max dintre interval si 0
sol=sol+max ( min(dr,n2)-max(st,zero)+1 , zero);
}
}
fprintf (fout,"%lld",sol);
return 0;
}