Cod sursa(job #3306189)

Utilizator Lex._.Lex Guiman Lex._. Data 8 august 2025 13:59:42
Problema Numerele lui Stirling Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <bits/stdc++.h>
#define MAX 201
#define MOD 98999
using namespace std;

int s[MAX][MAX], S[MAX][MAX];

void precalc() ///precalculam s(i, j) si S(i, j) pentru fiecare i, j < MAX
{
    ///s(i, j)
    s[0][0]=1;
    for(int i=1; i<MAX; i++)
    {
        for(int j=1; j<=i; j++)
        {
            s[i][j]=(s[i-1][j-1]+(i-1)*s[i-1][j])%MOD;
        }
    }

    ///S(i, j)
    S[0][0]=1;
    for(int i=1; i<MAX; i++)
    {
        for(int j=1; j<=i; j++)
        {
            S[i][j]=(s[i-1][j-1]+j*S[i-1][j])%MOD;
        }
    }
}

int main()
{
    ifstream in("stirling.in");
    ofstream out("stirling.out");
    precalc();
    int t;
    in >> t;
    while(t--)
    {
        int x, n, m;
        in >> x >> n >> m;
        if(x==1) ///s(n, m) = s(n-1, m-1) + (n-1) * s(n-1, m)
        {
            out << s[n][m] << "\n";
        }
        else ///S(n, m) = S(n-1, m-1) + m * S(n-1, m)
        {
            out << S[n][m] << "\n";
        }
    }

    return 0;
}