Cod sursa(job #460128)

Utilizator GotenAmza Catalin Goten Data 1 iunie 2010 12:01:00
Problema 1-sir Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<fstream>
#define max_s 128*255+3
#define p 194767
using namespace std;
int n,sum,i,s[max_s],z[max_s];
void update(int dest[], int source[])
{
	for(int j=0;j<=n*(n-1)/2;++j)
	{
		dest[j]=source[abs(j+1-i)]+source[j+i-1];
		if(dest[j]>=p)
			dest[j]-=p;
	}
}
int main()
{
	ifstream read ("1-sir.in");
	ofstream write ("1-sir.out");
	read>>n>>sum;
	if(sum<-n*(n-1)/2||sum>n*(n-1)/2)
	{
		write<<0<<'\n';
		return 0;
	}
	s[0]=1;
	for(i=2;i<=n;++i)
		if(i%2)
			update(s,z);
		else
			update(z,s);
	if(n%2)
		write<<s[abs(sum)]<<'\n';
	else
		write<<z[abs(sum)]<<'\n';
	return 0;
}