Pagini recente » Cod sursa (job #468867) | Cod sursa (job #850809) | Cod sursa (job #1812347) | Istoria paginii runda/eusebiu1/clasament | Cod sursa (job #844184)
Cod sursa(job #844184)
#include <cstdio>
#include <cassert>
using namespace std;
const int Mod = 194767;
const int MaxSum = 70000;
int N, Sum, DP[MaxSum], Solution;
void Solve() {
Solution = 0;
int MaxS = N * (N - 1) / 2;
if (Sum < -MaxS || Sum > MaxS)
return;
DP[0] = 1, MaxS = 0;
for (int i = 2; i <= N; ++i) {
int Value = 2 * (N - i + 1);
for (int s = MaxS; s >= 0; --s)
DP[s + Value] = (DP[s + Value] + DP[s]) % Mod;
MaxS += Value;
}
Solution = DP[N * (N - 1) / 2 - Sum];
}
void Read() {
assert(freopen("1-sir.in", "r", stdin));
assert(scanf("%d %d", &N, &Sum));
}
void Print() {
assert(freopen("1-sir.out", "w", stdout));
printf("%d\n", Solution);
}
int main() {
Read();
Solve();
Print();
return 0;
}