Pagini recente » Cod sursa (job #238118) | Cod sursa (job #3233122) | Cod sursa (job #850740) | Cod sursa (job #2229127) | Cod sursa (job #1087210)
#include<cstdio>
#include<iostream>
using namespace std;
const int N=201,MOD=98999;
int s[201][201], S[201][201];
void precalculare_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 precalculare_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(){
freopen("stirling.in","r",stdin);
freopen("stirling.out","w",stdout);
precalculare_s();
precalculare_S();
int T;
cin>>T;
int id,n,m;
for(;T;T--){
cin>>id>>n>>m;
if(id==1) cout<<s[n][m]<<"\n";
else cout<<S[n][m]<<"\n";
}
}