Cod sursa(job #341761)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 19 august 2009 14:40:35
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
#define mod 194767
#define T(x,sum) v[x][sum+33000]
int i,j,N,S,c,a,lim,Smax[260];
int v[2][66000];

int main()
{
	freopen("1-sir.in", "r", stdin);
	freopen("1-sir.out", "w", stdout);
	scanf("%d%d",&N,&S);
	Smax[1]=0;
	for(i=2;i<=N;i++)
		Smax[i]=Smax[i-1]+i-1;
	if(S<0)
		S=-S;
	if(S>Smax[N])
	{
		printf("0\n");
		return 0;
	}
	c=0;
	T(c,0)=1;
	for(i=2;i<=N;i++)
	{
		a=c;
		c=1-c;
		lim=Smax[i];
		for(j=0;j<=lim;j++)
		{
			T(c,j)=(T(a,j-i+1)+T(a,j+i-1))%mod;
			T(c,-j)=T(c,j);
		}
	}
	printf("%d\n",T(c,S));
	return 0;
}