Cod sursa(job #2056273)

Utilizator VladG26Ene Vlad-Mihai VladG26 Data 4 noiembrie 2017 10:36:17
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <cstdio>
using namespace std;
const int MOD=98999;
int m1[205][205],m2[205][205];
void stirling1()
{
    for(int i=0;i<=200;i++)
    {
        m1[i][0]=0;
        m1[i][i]=1;
    }
    for(int i=2;i<=200;i++)
        for(int j=1;j<=200;j++)
    {
        m1[i][j]=(m1[i-1][j-1]+j*m1[i-1][j])%MOD;
    }
}
void stirling2()
{
    m2[0][0]=1;
    for(int i=1;i<=200;i++)
        for(int j=1;j<=200;j++)
    {
        m2[i][j]=(m2[i-1][j-1]-(i-1)*m2[i-1][j])%MOD;
    }
}
int main()
{
    freopen("stirling.in","r",stdin);
    freopen("stirling.out","w",stdout);
    int T,m,n,s;
    scanf("%d",&T);
    stirling1();
    stirling2();
    while(T--)
    {
        scanf("%d%d%d",&s,&n,&m);
        if(s==1)
            printf("%d\n",m2[n][m]);
        else
            printf("%d\n",m1[n][m]);
    }
    return 0;
}