Pagini recente » Cod sursa (job #1545102) | Cod sursa (job #938119) | Cod sursa (job #2442928) | Cod sursa (job #184158) | Cod sursa (job #2763977)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("stirling.in");
ofstream out("stirling.out");
int s[201][201], S[201][201];
const int n=201, mod = 98999;
void gen_s()
{
s[1][1]= 1;
for( int i=2 ; i<n ; ++i )//precalculam pana la limita maxima
for( int j=1 ; j<=i ; ++j )//pentru j>i s(i,j)=0 pentru ca ciclurile au cel putin un element
s[i][j]= ( s[i-1][j-1] - (i-1)*s[i-1][j] )%mod ;
}
void gen_S()
{
S[1][1]= 1;
for( int i=2 ; i<n ; ++i )
for( int j=1 ; j<=i ; ++j )
S[i][j]= ( S[i-1][j-1] + j*S[i-1][j] )%mod;
}
int main()
{
int t, c, n1,n2;
in>>t;
gen_s();
gen_S();
for(t; t>0; t--)
{
in>>c>>n1>>n2;
if(c==1)
out<<s[n1][n2]<<'\n';
else
out<<S[n1][n2]<<'\n';
}
return 0;
}