Cod sursa(job #655514)

Utilizator ChallengeMurtaza Alexandru Challenge Data 2 ianuarie 2012 19:32:14
Problema 1-sir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;

const char InFile[]="1-sir.in";
const char OutFile[]="1-sir.out";
const int MaxN=256;
const int MaxS=((MaxN*(MaxN+1))>>1);
const int MOD=194767;

ifstream fin(InFile);
ofstream fout(OutFile);

int N,S,MS,buffer1[MaxS],buffer2[MaxS];
int *line1=buffer1,*line2=buffer2;

int main()
{
	fin>>N>>S;
	fin.close();

	S=abs(S);

	int MS=((N*(N-1))>>1);

	if(S>MS)
	{
		fout<<"0";
	}
	else
	{
		line1[0]=1;
		for(register int i=2;i<=N;++i)
		{
			for(register int j=0;j<=MS;++j)
			{
				line2[j]=line1[abs(j-i+1)]+line1[j+i-1];
				if(line2[j]>MOD)
				{
					line2[j]-=MOD;
				}
			}
			swap(line1,line2);
		}
		fout<<line1[S];
	}
	fout.close();
	return 0;
}