Pagini recente » Cod sursa (job #2826126) | Cod sursa (job #305712) | Cod sursa (job #1069734) | Cod sursa (job #698078) | Cod sursa (job #41870)
Cod sursa(job #41870)
#include <stdio.h>
#define INPUT "1-sir.in"
#define OUTPUT "1-sir.out"
#define MAXN 257
#define MAX 32640
#define CONST 194767
int N, S;
int rez[MAXN][MAX*2 + 1];
// rez[i][j] = numarul de siruri cu i termeni si suma j
int main()
{
freopen(INPUT, "r", stdin);
scanf("%d %d", &N, &S);
int i, j;
rez[1][MAX] = 1;
for(i = 1; i <= N; ++i)
{
for(j = -MAX; j <= MAX; ++j)
{
if(j - (i-1) >= -MAX) rez[i][MAX + j] = (rez[i][MAX + j] + rez[i-1][MAX + j - (i-1)]) % CONST;
if(j + (i-1) <= MAX) rez[i][MAX + j] = (rez[i][MAX + j] + rez[i-1][MAX + j + (i-1)]) % CONST;
}
}
freopen(OUTPUT, "w", stdout);
printf("%d\n", rez[N][S + MAX]);
return 0;
}