Pagini recente » Monitorul de evaluare | Cod sursa (job #187845) | Cod sursa (job #647536) | Monitorul de evaluare | Cod sursa (job #2854966)
#include <fstream>
#define NMAX 258
#define MOD 194767
#define SMAX 32640
using namespace std;
ifstream fin("1-sir.in");
ofstream fout("1-sir.out");
int a[2][2*SMAX][2*NMAX], prec, crt, i, j, k, sum, n, s;
int main()
{
crt=1;
fin>>n>>s;
a[1][SMAX][NMAX]=1;
for(i=1; i<=n; i++)
{
sum+=i;
for(j=1; j<=sum; j++)
{
for(k=-i+1; k<i; k++)
{
a[crt][j+SMAX][k+NMAX]=(a[prec][j-k+SMAX][k-1+NMAX]+a[prec][j-k+SMAX][k+1+NMAX])%MOD;
//fout<<i<<' '<<j<<' '<<k<<' '<<a[crt][j+SMAX][k+NMAX]<<'\n';
}
}
prec=1-prec;
crt=1-crt;
}
sum=0;
for(k=-n+1; k<n; k++) sum=(sum+a[prec][s+SMAX][k+NMAX])%MOD;
fout<<sum<<'\n';
return 0;
}