Cod sursa(job #792873)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 1 octombrie 2012 16:06:33
Problema 1-sir Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
#include<cmath>
#define MOD 194767
using namespace std;
int n,S,Smax;
int nr[2][33000],sol;

int main()
{
	int i,j,s1,s2,p;
	ifstream fin("1-sir.in");
	fin>>n>>S;
	fin.close();
	
	S=(int)abs((double)S);
	Smax=n*(n-1)/2;
	if(S>Smax)
		sol=0;
	else
	{
		nr[0][0]=1;
		p=1;
		for(i=2;i<=n;i++)
		{
			for(j=0;j<=Smax;j++)
			{
				s1=j+(i-1);
				s2=(int)abs((double)(j-(i-1)));
				nr[p][j]=nr[p^1][s1]+nr[p^1][s2];
				if(nr[p][j]>=MOD)
					nr[p][j]-=MOD;
			}
			p=(p^1);
		}
		if(n%2==1)
			sol=nr[0][S];
		else
			sol=nr[1][S];
	}
	
	ofstream fout("1-sir.out");
	fout<<sol<<"\n";
	fout.close();
	return 0;
}