Cod sursa(job #2578080)

Utilizator IoanaDraganescuIoana Draganescu IoanaDraganescu Data 10 martie 2020 14:57:10
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NMax = 200, MMax = 200, mod = 98999;

int t, task, n, m;
int s[NMax + 5][MMax + 5], S[NMax + 5][MMax + 5];

void Solve1(){
    s[0][0] = 1;
    for (int i = 1; i <= NMax; i++)
        for (int j = 1; j <= MMax; j++)
            s[i][j] = (s[i - 1][j - 1] - (i - 1) * s[i - 1][j]) % mod;
}

void Solve2(){
    S[0][0] = 1;
    for (int i = 1; i <= NMax; i++)
        for (int j = 1; j <= MMax; j++)
            S[i][j] = (S[i - 1][j - 1] + j * S[i - 1][j]) % mod;
}

int main(){
    Solve1();
    Solve2();
    fin >> t;
    while (t--){
        fin >> task >> n >> m;
        if (task == 1)
            fout << s[n][m] << '\n';
        else
            fout << S[n][m] << '\n';
    }
    return 0;
}