Pagini recente » Cod sursa (job #2179863) | Cod sursa (job #1768619) | Cod sursa (job #963765) | Cod sursa (job #1374694) | Cod sursa (job #8644)
Cod sursa(job #8644)
#include <stdio.h>
#define NMAX 260
int n, S;
int lev;
int s;
int st[NMAX];
int sol;
void back() {
int i;
if(lev == n) {
if(s == S)
sol++;
//{
//for(i = 1; i <= n; i++)
// printf("%d ", st[i]);
//printf("\n");
//}
return;
}
if((n - lev) * (n - lev + 1) / 2 + (n - lev) * st[lev] < S - s)
return;
lev++;
for(i = 1; i >= -1; i -= 2) // 1 si -1
{
st[lev] = st[lev-1] + i;
s += st[lev];
back();
s -= st[lev];
}
lev--;
}
int main()
{
freopen("1-sir.in", "r", stdin);
freopen("1-sir.out", "w", stdout);
scanf("%d%d", &n, &S);
if(S < 0)
S = -S;
if((n/2)%2 != S%2) {
printf("0\n");
return 0;
}
st[1] = 0;
lev = 1;
back();
printf("%d\n", sol%194767);
return 0;
}