Pagini recente » Cod sursa (job #3136373) | Cod sursa (job #1915568) | Cod sursa (job #1904518) | Cod sursa (job #1127540) | Cod sursa (job #1501259)
#include <iostream>
#include <fstream>
using namespace std;
fstream f,g;
long long S,N,v[2][514][65281],n,l,s,smax,Sol;
int main()
{
//punct 0 32640 la s, la l 256
f.open("1-sir.in",ios_base::in);
g.open("1-sir.out",ios_base::out);
cin>>N>>S;
int m;
v[1][256][32640]=1;
for(n=2,m=0;n<N;n++,m=!m)for(l=-n+1;l<=n-1;l++)for(s=S-l*(N-n)-(N-n)*(N-n+1)/2,smax=S-l*(N-n)+(N-n)*(N-n+1)/2;s<=smax;s++)
v[m][l+256][s+32640]=v[!m][l+256-1][s+32640-l]+v[!m][l+256+1][s+32640-l];
for(l=-n+1;l<=n-1;l++)for(s=S-l*(N-n)-(N-n)*(N-n+1)/2,smax=S-l*(N-n)+(N-n)*(N-n+1)/2;s<=smax;s++)
Sol+=v[!m][l+256-1][s+32640-l]+v[!m][l+256+1][s+32640-l];
cout<<Sol;
}