Mai intai trebuie sa te autentifici.
Cod sursa(job #24860)
| Utilizator | Data | 3 martie 2007 20:12:36 | |
|---|---|---|---|
| Problema | 1-sir | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.8 kb |
# include <stdio.h>
# include <string.h>
# define _fin "1-sir.in"
# define _fout "1-sir.out"
# define maxn 260
# define maxs 32768
# define mod 194767
int d[2][maxs], n, s, sol;
inline int abs(int x) { return x>=0?x:-x; }
void readf()
{
freopen(_fin, "r", stdin);
scanf("%d %d", &n, &s), s=abs(s);
}
void solve()
{
int i, j, act=0, to;
d[0][0] = 1;
for (i=2; i<=n; i++)
{
memset(d[!act], 0, sizeof(d[!act]));
for (j=0, to=i*(i-1)/2; j<=to; j++)
{
d[!act][j] = d[act][abs(j-(i-1))] + d[act][abs(j+(i-1))];
if ( d[!act][j] >= mod ) d[!act][j] -= mod;
}
act = !act;
}
sol = d[act][abs(s)];
}
void writef()
{
freopen(_fout, "w", stdout);
printf("%d\n", sol);
}
int main()
{
readf();
solve();
writef();
return 0;
}
