Pagini recente » Cod sursa (job #1702444) | Cod sursa (job #2791618) | Cod sursa (job #2776232) | Cod sursa (job #20656) | Cod sursa (job #7068)
Cod sursa(job #7068)
#include <stdio.h>
int sol = 0;
int v[1000];
int S = 0, N;
int st =0;
void back(int k = 1) {
if (k == N) {
if (S == st) {sol++; sol%=194767;}
return;
}
int i;
if (v[k] *(N-k) +(N-k)*(N-k+1)/2+st < S) return;
if (st - v[k] *(N-k) -(N-k)*(N-k+1)/2 > S) return;
// mai trebuie N - k...total = N-k + v[k]
for (i=-1; i<=1; i+=2) {
v[k+1] = v[k] + i;
st+=v[k+1];
back(k+1);
st-=v[k+1];
}
}
int main() {
freopen("1-sir.in", "r", stdin);
freopen("1-sir.out", "w", stdout);
scanf("%d %d", &N, &S);
back(1);
printf("%d\n", sol);
return 0;
}