Cod sursa(job #1235876)

Utilizator alex_bucevschiBucevschi Alexandru alex_bucevschi Data 30 septembrie 2014 20:23:25
Problema Numerele lui Stirling Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>
#define MOD 98999
using namespace std;
long long i,n,s[210][210],S[210][210],j,k,t,tip;
int main()
{
    freopen("stirling.in","r",stdin);
    freopen("stirling.out","w",stdout);
    s[0][0]=S[0][0]=1;
    s[1][1]=S[1][1]=1;
    for(i=2;i<=200;i++)
    {
        s[i][i]=S[i][i]=1;
        s[i][1]=s[i-1][1]*(i-1);
        S[i][1]=1;
    }
    for(i=3;i<=200;i++)
        for(j=i-1;j>1;j--)
        {
            S[i][j]=(S[i-1][j]*j+S[i-1][j-1])%MOD;
            s[i][j]=(s[i-1][j]*(i-1)+s[i-1][j-1])%MOD;
        }
    scanf("%lld",&t);
    for(;t;t--)
    {
        scanf("%lld%lld%lld",&tip,&n,&k);
        if(tip==1)
            printf("%lld\n",(n-k)%2?-s[n][k]:s[n][k]);
        else
            printf("%lld\n",S[n][k]);
    }
    return 0;
}