Pagini recente » Cod sursa (job #956399) | Cod sursa (job #1757924) | Cod sursa (job #1303578) | Cod sursa (job #1278625) | Cod sursa (job #2035557)
#include <bits/stdc++.h>
using namespace std;
const int N = 256, mod = 194767;
int l, n, s, dp[2 * N * N], rest[2 * mod];
#define idx(pos) ((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;
}
for(int i = 0; i < mod; ++i) rest[i] = i;
for(int i = mod; i < 2 * mod; ++ i) rest[i] = i - mod;
l = 0;
dp[idx(full)] = 1;
for(int i = 2; i <= n; ++ i) {
int decr = 2 * (n - i + 1);
for(int j = -full; j <= full - decr; ++ j) {
dp[idx(j)] = rest [ dp[idx(j)] + dp[idx(j + decr)] ];
}
}
cout << dp[idx(s)];
}