Cod sursa(job #2763977)

Utilizator TitanVSirbu Vlad stefan TitanV Data 18 iulie 2021 13:45:42
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("stirling.in");
ofstream out("stirling.out");

int s[201][201], S[201][201];
const int n=201, mod = 98999;

void gen_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 gen_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()
{
    int t, c, n1,n2;
    in>>t;

    gen_s();
    gen_S();

    for(t; t>0; t--)
    {
        in>>c>>n1>>n2;
        if(c==1)
            out<<s[n1][n2]<<'\n';
            else
            out<<S[n1][n2]<<'\n';

    }

    return 0;
}