Cod sursa(job #1824485)

Utilizator Cezar98Alexandru Cezar Cezar98 Data 7 decembrie 2016 21:38:00
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("stirling.in");
ofstream g("stirling.out");
long stirling[201][201],Stirling[201][201];
long s(long n, long m)
{

if(n < m) return 0;
if(m < 0) return 0;
if(n==m) {Stirling[n][m] = 1; return 1;}
if(!stirling[n][m]) stirling[n][m] = (s(n-1,m-1) - (n-1) * s(n-1,m) %98999) % 98999;
return stirling[n][m];


}

long S(long n, long m)
{
if(n < m) return 0;
if(m < 0) return 0;
if(n==m) {Stirling[n][m] = 1; return 1;}
if(!Stirling[n][m]) Stirling[n][m] = (S(n-1,m-1) + m* S(n-1,m) % 98999) % 98999;
return Stirling[n][m];
}
int main()
{
long n,m;
int i,T,x;
f >> T;

for(i=1;i<=T;i++){ f >> x >> n >> m;

if(x==1) {g << s(n,m) << endl;}
else g << S(n,m) << endl;
}
    return 0;
}