Cod sursa(job #478389)

Utilizator claudiumihailClaudiu Mihail claudiumihail Data 18 august 2010 12:13:58
Problema Numerele lui Stirling Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include<fstream>
#include<iostream>
using namespace std;

#define MAXN 202
#define MAXM 202

long s[MAXN][MAXM],S[MAXN][MAXM];

int main()
{
	fstream fin("stirling.in",fstream::in);
	fstream fout("stirling.out",fstream::out);
	int T,x,n,m;
	
	S[0][0]=1;		
	for(int i=1; i<=MAXN; i++)
	{
		S[i][i]=s[i][i]=1;
		S[i][0]=s[i][0]=0;
		S[i][1]=1;
	}
	for(int i=1; i<=MAXN; i++)
	{
		for(int j=2; j<i; j++)
		{
			S[i][j]=(S[i-1][j-1]+j*S[i-1][j])%98999;
		}
	}
	for(int i=1; i<=MAXN; i++)
	{
		for(int j=1; j<i; j++)
		{
			s[i][j]=(s[i-1][j-1]-(i-1)*s[i-1][j])%98999;
		}
	}
	fin>>T;
	for(int i=0; i<T; i++)
	{
		fin>>x>>n>>m;
		switch(x)
		{
			case 1:
			{
				fout<<s[n][m]<<"\n";
			}; break;
			default:
				fout<<S[n][m]<<"\n";
		}
	}
	/*for(int i=0; i<=9; i++)
	{
		for(int j=0; j<=i; j++)
			cout<<s[i][j]<<" ";
		cout<<"\n";
	}
	cout<<endl<<endl;
	for(int i=0; i<=9; i++)
	{
		for(int j=0; j<=i; j++)
			cout<<S[i][j]<<" ";
		cout<<"\n";
	}*/
	
	fin.close();
	fout.close();
	return 0;
}