Cod sursa(job #133006)

Utilizator razvi9Jurca Razvan razvi9 Data 7 februarie 2008 11:43:39
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
#include<cstring>
using namespace std;
const int mod=194767;
int n,s,last[128*255+1],next[128*255+1],i,j,m,x,y;
int main()
{
	ifstream fin("1-sir.in");
	ofstream fout("1-sir.out");
	fin>>n>>s;
	if(s<0) s=-s;
	if(s>n*(n-1)/2) {fout<<"0"<<endl;fout.close();return 0;}
	next[0]=1;
	for(i=2;i<=n;i++){
		memcpy(last,next,sizeof(last));
		m=i*(i-1)/2;
		for(j=0;j<=m;j++){
			x=j-(i-1);
			if(x<0) x=-x;
			y=j+(i-1);
			if(x>m) x=0;
			else x=last[x];
			if(y>m) y=0;
			else y=last[y];
			next[j]=(x+y)%mod;}}
	fout<<next[s]<<endl;
	fout.close();
	return 0;
}