Cod sursa(job #2673838)

Utilizator Alin_StanciuStanciu Alin Alin_Stanciu Data 17 noiembrie 2020 20:48:27
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#define MAX_SZ 200
#define MOD 98999

#include <iostream>
#include <fstream>
 
using namespace std;
 
ifstream fin("stirling.in");
ofstream fout("stirling.out");

int s[MAX_SZ + 1][MAX_SZ + 1], S[MAX_SZ + 1][MAX_SZ + 1];

void Prep()
{
	s[1][1]= 1;

    for(int i = 2; i < (MAX_SZ + 1); ++i)
    {
        for( int j = 1; j <= i; ++j)
        {
            s[i][j] = (s[i - 1][j - 1] - (i - 1) * s[i - 1][j]) % MOD;
        }
    }

    S[1][1] = 1;

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

int main()
{
	Prep();
	
    int t;
    fin >> t;
 
    for (int i = 1; i <= t; ++i)
    {
        int x, n, m;
        fin >> x >> n >> m;
 
        if (x == 1)
            fout << s[n][m] << '\n';
        else fout << S[n][m] << '\n';
    }
 
    return 0;
}