Pagini recente » Cod sursa (job #962273) | Cod sursa (job #13693) | Cod sursa (job #615468) | Cod sursa (job #883352) | Cod sursa (job #2035546)
#include <bits/stdc++.h>
using namespace std;
const int N = 256, mod = 194767;
int l, n, s, dp[2][2 * N * N];
int idx(int pos) {
return pos + N * N;
}
int main() {
freopen("1-sir.in", "r", stdin);
freopen("1-sir.out", "w", stdout);
cin >> n >> s;
int full = (n - 1) * n / 2;
if(abs(s) > full) {
cout << 0;
return 0;
}
l = 0;
dp[l][idx(full)] = 1;
for(int i = 2; i <= n; ++ i) {
memset(dp[l ^ 1], 0, sizeof dp[l ^ 1]);
l ^= 1;
int decr = 2 * (n - i + 1);
for(int j = -full; j <= full; ++ j) {
dp[l][idx(j)] = dp[l ^ 1][idx(j)];
dp[l ][idx(j)] += dp[l ^ 1][idx(j + decr)];
if(dp[l][idx(j)] >= mod)
dp[l][idx(j)] -= mod;
}
}
cout << dp[l][idx(s)];
}