Cod sursa(job #3184830)

Utilizator vlad23456Cruceru Vlad vlad23456 Data 17 decembrie 2023 01:05:41
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

using namespace std;

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

int nmax = 200, modulo = 98999, s1[201][201], s2[201][201];

void calc_s1()
{
    s1[1][1] = 1;
    for(int i = 2; i <= nmax; i++)
        for(int j = 1; j <= i; j++)
            s1[i][j] = (s1[i - 1][j - 1] - (i - 1) * s1[i - 1][j]) % modulo;
}

void calc_s2()
{
    s2[1][1] = 1;
    for(int i = 2; i <= nmax; i++)
        for(int j = 1; j <= i; j++)
            s2[i][j] = (s2[i - 1][j - 1] + j * s2[i - 1][j]) % modulo;
}

int main()
{
    int t, n, m, v;
    calc_s1();
    calc_s2();
    fin >> t;
    while(t--)
    {
        fin >> v >> n >> m;
        switch(v)
        {
        case 1:
            fout << s1[n][m] << '\n';
            break;
        case 2:
            fout << s2[n][m] << '\n';
            break;
        }
    }
    fin.close();
    fout.close();
    return 0;
}