Cod sursa(job #2286571)

Utilizator andreisophieMMAndrei Maruntis andreisophieMM Data 20 noiembrie 2018 14:49:24
Problema Numerele lui Stirling Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#define mod 98999

using namespace std;

ifstream f("stirling.in");
ofstream g("stirling.out");

short int semn(int a, int b)
{
    if ((a-b)%2)
        return -1;
    else
        return 1;
}

int s(int n, int k)
{
    if (k>n || k==0 || n==0)
        return 0;
    else
        if (n==k)
            return 1;
        else
            return ((n-1)*s(n-1,k)+s(n-1,k-1))%mod;
}

int S(int n, int k)
{
    if (k>n || k==0 || n==0)
        return 0;
    else
        if (n==k)
            return 1;
        else
            return (k*S(n-1,k)+S(n-1,k-1))%mod;
}

int main()
{
    int n,p,a,b;
    f>>n;
    for (int i=0;i<n;i++)
    {
        f>>p>>a>>b;
        if (p==1)
            g<<semn(a,b)*s(a,b)<<'\n';
        else
            g<<S(a,b)<<'\n';
    }
    return 0;
}