Cod sursa(job #1235858)

Utilizator alex_bucevschiBucevschi Alexandru alex_bucevschi Data 30 septembrie 2014 20:04:08
Problema Numerele lui Stirling Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>

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];
            s[i][j]=S[i-1][j]*(i-1)+s[i-1][j-1];
        }
    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;
}