Cod sursa(job #1884823)

Utilizator zdavid112zIon David-Gabriel zdavid112z Data 19 februarie 2017 12:15:57
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <cstdio>
#define nmax 200
#define MOD 98999

using namespace std;

int s1[nmax + 1][nmax + 1];
int s2[nmax + 1][nmax + 1];

void gens1()
{
    int i, j;
    s1[1][1] = 1;
    for(i = 2; i <= nmax; i++)
    {
        for(j = 1; j <= i; j++)
        {
            s1[i][j] = (s1[i - 1][j - 1] - (i - 1) * s1[i - 1][j]) % MOD;
        }
    }
}

void gens2()
{
    int i, j;
    s2[1][1] = 1;
    for(i = 2; i <= nmax; i++)
    {
        for(j = 1; j <= i; j++)
        {
            s2[i][j] = (j * s2[i - 1][j] + s2[i - 1][j - 1]) % MOD;
        }
    }
}

int main()
{
    int t, op, a, b;
    freopen("stirling.in", "r", stdin);
    freopen("stirling.out", "w", stdout);
    gens1();
    gens2();
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d%d%d", &op, &a, &b);
        if(op == 1)
            printf("%d\n", s1[a][b]);
        else printf("%d\n", s2[a][b]);
    }
    return 0;
}