Pagini recente » Cod sursa (job #243146) | Rating Aonicesei Mihaela (Misha4) | Cod sursa (job #3139648) | Cod sursa (job #2298388) | Cod sursa (job #2579604)
#include <fstream>
using namespace std;
ifstream fin("1-sir.in");
ofstream fout("1-sir.out");
const int r = 194767;
int dp1[2*33000+1];
int dp2[2*33000+1];
#define dp1 (dp1+33000)
#define dp2 (dp2+33000)
int main()
{
int i, n, j, s, smax, e;
fin >> n >> s;
if (s < 0)
s = -s;
if (s > n*(n-1)/2)
{
fout << 0;
return 0;
}
smax = n*(n-1)/2;
dp2[n-1] = 1;
dp2[-n+1] = 1;
for (i = 3; i<=n; i++)
{
e = n-i+1;
if (i%2)
for (j = -smax; j<=smax; j++)
dp1[j] = (dp2[j-e] + dp2[j+e])%r;
else
for (j = -smax; j<=smax; j++)
dp2[j] = (dp1[j-e] + dp1[j+e])%r;
}
if (n%2)
fout << dp1[s];
else
fout << dp2[s];
return 0;
}