Cod sursa(job #2285971)

Utilizator cezar.plescaCezar Plesca cezar.plesca Data 19 noiembrie 2018 17:16:30
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include<stdio.h>

#include<iostream>
#include<fstream>

#include<vector>
#include<algorithm>
using namespace std;

#define MODULO 98999
#define MAXN 200

int S[MAXN+1][MAXN+1];
int s[MAXN+1][MAXN+1];

void precompute(){
	for(int i=0;i<=MAXN;i++){
		s[i][i]=1;
		S[i][i]=1;
	}
	for(int i=2;i<=MAXN;i++){
		for(int j=1;j<i;j++){
			s[i][j]=(s[i-1][j-1]-(i-1)*s[i-1][j])%MODULO;
			S[i][j]=(S[i-1][j-1]+j*S[i-1][j])%MODULO;
		}
	}
}

int main(){
	
	freopen("stirling.in", "r", stdin);
	freopen("stirling.out", "w", stdout);

	int T;
	scanf("%d",&T);

	precompute();

	int x, n, m; 
	for(int i=0;i<T;i++){
		scanf("%d %d %d", &x, &n, &m);
		if(x==1){
			// s mic
			printf("%d\n",s[n][m]);
		}
		else{
			// S mare
			printf("%d\n",S[n][m]);
		}
		
	}

	return 0;
}