Pagini recente » Cod sursa (job #2303176) | Cod sursa (job #2463347) | Cod sursa (job #866375) | Cod sursa (job #1979700) | Cod sursa (job #14262)
Cod sursa(job #14262)
#include <cstdio>
#include <string.h>
#define Nmax 260
const int modul = 194767;
int n, s;
int d1[Nmax * Nmax], d2[Nmax * Nmax];
void citire()
{
scanf("%d %d\n", &n, &s);
}
inline int mod(int x)
{
if (x >= 0)
return x;
return -x;
}
void solve()
{
int i, j, smax = n * (n-1) / 2;
d1[0] = 1;
for (i=1; i<n; ++i)
{
memset(d2, 0, sizeof(d2));
for (j=-smax; j<0; ++j)
{
if (j+i >= 0)
{
d2[j+i] += d1[-j];
if (d2[j+i] >= modul)
d2[j+i] -= modul;
}
if (j-i >= 0)
{
d2[j-i] += d1[-j];
if (d2[j-i] >= modul)
d2[j-i] -= modul;
}
}
for (j=0; j<=smax; ++j)
{
if (j+i >= 0)
{
d2[j+i] += d1[j];
if (d2[j+i] >= modul)
d2[j+i] -= modul;
}
if (j-i >= 0)
{
d2[j-i] += d1[j];
if (d2[j-i] >= modul)
d2[j-i] -= modul;
}
}
memcpy(d1, d2, sizeof(d1));
}
printf("%d\n", d2[s]);
}
int main()
{
freopen("1-sir.in", "r", stdin);
freopen("1-sir.out", "w", stdout);
citire();
solve();
return 0;
}