Cod sursa(job #8789)
Utilizator | Paul-Dan Baltescu pauldb | Data | 25 ianuarie 2007 16:38:23 |
---|---|---|---|
Problema | 1-sir | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.88 kb |
#include <stdio.h>
#define maxn 65536
#define mod 194767
int n,s;
int c[maxn],d[maxn];
int main()
{
freopen("1-sir.in","r",stdin);
freopen("1-sir.out","w",stdout);
scanf("%d %d",&n,&s);
int i,j;
s=n*(n-1)/2-s;
if ((s<0) || (s>n*(n-1)))
{
printf("0\n");
return 0;
}
c[0]=1;
for (i=1;i<n;i++)
{
for (j=0;j<=s;j++)
{
d[j]=c[j];
c[j]=0;
}
for (j=0;j<=s;j++)
if (d[j]>0)
{
if (j+2*i<=s)
{
c[j+2*i]+=d[j];
if (c[j+2*i]>mod) c[j+2*i]-=mod;
}
c[j]+=d[j];
if (c[j]>mod) c[j]-=mod;
}
}
printf("%d\n",c[s]);
return 0;
}