Pagini recente » Istoria paginii utilizator/teovecerdi | Monitorul de evaluare | Monitorul de evaluare | Atasamentele paginii Clasament joaca | Cod sursa (job #2116723)
#include <cstdio>
using namespace std;
FILE *in,*out;
const int nmax = 200;
const int modulo = 98999;
int s[1+nmax][1+nmax], c[1+nmax][1+nmax];
void precompute()
{
s[1][1] = 1;
for(int i = 2;i <= nmax;i ++)
for(int j = 1;j <= i;j ++)
s[i][j] = (s[i-1][j-1] + j*s[i-1][j]) % modulo;
c[0][0] = 1;
for(int i = 1;i <= nmax;i ++)
for(int j = 1;j <= i;j ++)
c[i][j] = (c[i-1][j-1] - (i-1)*c[i-1][j]) % modulo;
}
int main()
{
in = fopen("stirling.in","r");
out = fopen("stirling.out","w");
precompute();
int t;
fscanf(in,"%d",&t);
while(t--)
{
int x,n,m;
fscanf(in,"%d %d %d",&x,&n,&m);
if(x == 1)
fprintf(out,"%d\n",c[n][m]);
else
fprintf(out,"%d\n",s[n][m]);
}
return 0;
}