Cod sursa(job #2569451)

Utilizator richardbaczur1Baczur Richard richardbaczur1 Data 4 martie 2020 12:12:31
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <bits/stdc++.h>
#define N 205
#define MOD 98999
#define infile "stirling.in"
#define outfile "stirling.out"

using namespace std;

int s[N][N], S[N][N], t, n, m, speta;

void precalculare_s()
{
    s[1][1] = 1;
    for (int i = 2; i < N; i++)
        for (int j = 1; j <= i; j++)
        {
            s[i][j] = (s[i - 1][j - 1] - (i - 1) * s[i - 1][j]) % MOD;
        }
}

void precalculare_S()
{
    S[1][1] = 1;
    for (int i = 2; i < N; i++)
        for (int j = 1; j <= i; j++)
        {
            S[i][j] = (S[i - 1][j - 1] + j * S[i - 1][j]) % MOD;
        }
}

int main()
{
    freopen(infile, "r", stdin);
    freopen(outfile, "w", stdout);

    precalculare_S();
    precalculare_s();

    scanf("%d", &t);
    while (t--)
    {
        scanf("%d %d %d", &speta, &n, &m);
        switch (speta)
        {
            case 1:
                printf("%d\n", s[n][m]);
                break;
            case 2:
                printf("%d\n", S[n][m]);
                break;
        }
    }

    fclose(stdin);
    fclose(stdout);
    return 0;
}