Pagini recente » Profil AlexLuchianov | Cod sursa (job #1575129) | Cod sursa (job #33769) | Cod sursa (job #2012612) | Cod sursa (job #2018975)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
#define mp make_pair
#define pb push_back
#define ll long long
#define mod 194767
#define maxN 260
const int sz = (maxN * maxN) / 2;
int n, i, j, ss, dd;
int S;
int dp[2][2 * sz + 2];
int main()
{
freopen("1-sir.in","r",stdin);
freopen("1-sir.out","w",stdout);
scanf("%d%d", &n, &S);
ss = 0; dd = 1;
dp[ss][sz] = 1;
for (i = 1; i < n; i++) {
memset(dp[dd], 0, sizeof(dp[dd]));
for (j = -sz; j <= sz; j++) {
if (dp[ss][sz + j] == 0) continue;
dp[dd][sz + j + i] += dp[ss][sz + j];
if (dp[dd][sz + j + i] >= mod) dp[dd][sz + j + i] -= mod;
dp[dd][sz + j - i] += dp[ss][sz + j];
if (dp[dd][sz + j - i] >= mod) dp[dd][sz + j - i] -= mod;
}
swap(ss, dd);
}
if (S < -sz || S > sz) {
printf("0");
return 0;
}
printf("%d", dp[ss][S + sz]);
return 0;
}