Cod sursa(job #2148802)

Utilizator EclipseTepes Alexandru Eclipse Data 2 martie 2018 00:10:06
Problema Numerele lui Stirling Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#define MOD 98999

using namespace std;

unsigned short int T, V, n, m;
long long int t;

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

long long int Stirling1(unsigned short int a, unsigned short int b) {
    if (a == 0 && b == 0) return 1;
    if (a == 0 || b == 0) return 0;
    return (Stirling1(a - 1, b - 1) - ((a - 1) * Stirling1(a - 1, b))) % MOD;
}

unsigned long long int Stirling2(unsigned short int a, unsigned short int b) {
    if (a == 0 && b == 0) return 1;
    if (a == 0 || b == 0) return 0;
    return (b * Stirling2(a - 1, b) + Stirling2(a - 1, b - 1)) % MOD;
}

int main()
{
    unsigned short int i, j;
    fin >> T;
    for (i = 1; i <= T; i++) {
        fin >> V;
        fin >> n >> m;
        if (V == 1) t = Stirling1(n, m);
        else t = Stirling2(n, m);
        fout << t << "\n";
    }
    return 0;
}