Cod sursa(job #2738472)

Utilizator sorana5Gligor Sorana sorana5 Data 5 aprilie 2021 21:57:57
Problema Numerele lui Stirling Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int mod = 98999;

int apels (int n, int m)
{
    if (!n || !m)
        return 0;
    if (n < m)
        return 0;
    if (n == 1 && m == 1)
        return 1;
    return (apels(n - 1, m - 1) - (n - 1) * apels(n - 1, m)) % mod;
}

int apelS (int n, int m)
{
    if (!n || !m)
        return 0;
    if (n < m)
        return 0;
    if (n == 1 && m == 1)
        return 1;
    return (apelS(n - 1, m - 1) - m * apelS(n - 1, m)) % mod;
}

int main()
{
    int t, x, n, m;
    citire>>t;
    for (int i = 1; i <= t; ++i)
    {
        citire>>x>>n>>m;
        if (x == 1)
            afisare<<apels(n, m)<<'\n';
        else
            afisare<<apelS(n, m)<<'\n';
    }

    citire.close();
    afisare.close();
    return 0;
}