Cod sursa(job #2576671)

Utilizator valentin12Valentin Ion Semen valentin12 Data 6 martie 2020 21:34:30
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
using namespace std;
ifstream f("stirling.in");
ofstream g("stirling.out");

const int N=201,MOD=98999;
int t,n,m,speta,s[N][N],S[N][N];

void precalculare_s()
{

	s[1][1]= 1;
	for( int i=2 ; i<N ; ++i )//precalculam pana la limita maxima
		for( int j=1 ; j<=i ; ++j )//pentru j>i s(i,j)=0 pentru ca ciclurile au cel putin un element
			s[i][j]= ( s[i-1][j-1] - (i-1)*s[i-1][j] )%MOD ;

}

void precalculare_S()
{
	S[1][1]= 1;
	for( int i=2 ; i<N ; ++i )
		for( int j=1 ; j<=i ; ++j )
			S[i][j]= ( S[i-1][j-1] + j*S[i-1][j] )%MOD;

}

int main()

{
	precalculare_s();
	precalculare_S();
	f>>t;

	while(t--)
	{

		f>>speta>>n>>m;
		if(speta==1)
			g<<s[n][m]<<'\n';
		if(speta==2)
			g<<S[n][m]<<'\n';

	}

	return 0;

}