Cod sursa(job #3268263)

Utilizator Radu_Tanasebitlevel Radu_Tanase Data 14 ianuarie 2025 10:54:57
Problema Numerele lui Stirling Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

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

int speta_1(int a, int b)
{
    if(a == 0 || b == 0)
        return 0;
    if(a < b)
        return 0;
    if(a == 1 && b == 1)
        return 1;

    return ( speta_1(a - 1, b - 1) - (a - 1) * speta_1(a - 1, b) ) % 98999;
}

int speta_2(int a, int b)
{
    if(a == 0 || b == 0)
        return 0;
    if(a < b)
        return 0;
    if(a == 1 && b == 1)
        return 1;

    return (speta_1(a - 1, b - 1) + a * speta_1(a - 1, b)) % 98999;
}

int main()
{
    int n, cer, a, b;

    fin >> n;

    while(n > 0)
    {
        fin >> cer >> a >> b;

        if(cer == 1)
            fout << speta_1(a,b) << '\n';
        else
            fout << speta_2(a,b) << '\n';

        n--;
    }

    return 0;
}