Cod sursa(job #330895)
| Utilizator | Data | 11 iulie 2009 22:36:32 | |
|---|---|---|---|
| Problema | 1-sir | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
#define NMAX 260
#define MOD 194767
int N,S,a[2][NMAX*(NMAX+1)/2];
int abs(int x) {return x>0?x:-x;}
int main(){
int i,j,now=1,prev=0;
freopen("1-sir.in","r",stdin);
freopen("1-sir.out","w",stdout);
scanf("%d %d",&N,&S);
a[now][0]=1;
for (i=2;i<=N;++i)
{
now=i&1;prev=1-now;
for (j=0;j<=(i-1)*i/2;++j)
a[now][j]=(a[prev][j+i-1]+a[prev][abs(j-i+1)])%MOD;
}
printf("%d",abs(S) > (N-1)*N/2 ? 0 : a[now][abs(S)]);
return 0;
}
