Cod sursa(job #2373671)

Utilizator razvanradulescuRadulescu Razvan razvanradulescu Data 7 martie 2019 14:46:43
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <iostream>
#include <cstdio>
#define MOD 98999
using namespace std;

int t, p, n, m;
int S[203][203];
int s[203][203];

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

void calcs()
{
    for(int i = 0; i<=200; i++)
    {
        s[i][0] = 0;
        s[i][i] = 1;
        for(int j = 1; j<i; j++)
            s[i][j] = (s[i-1][j-1] - ((i-1)*s[i-1][j])%MOD)%MOD;
    }
}

void afisare(int a[203][203])
{
    for(int i = 0; i<=200; i++)
    {
        for(int j = 0; j<=i; j++)
            printf("%d ", a[i][j]);
        printf("\n");
    }
}

void rez()
{
    scanf("%d", &t);
    for(int i = 0; i<t; i++)
    {
        scanf("%d %d %d", &p, &n, &m);
        if(p == 1)
        {
            printf("%d\n", s[n][m]);
        }
        else
        {
            printf("%d\n", S[n][m]);
        }
    }
}

int main()
{
    freopen("stirling.in", "r", stdin);
    freopen("stirling.out", "w", stdout);
    calcS();
    calcs();
    rez();
    return 0;
}