Cod sursa(job #1495869)

Utilizator mika17Mihai Alex Ionescu mika17 Data 3 octombrie 2015 19:36:32
Problema Numerele lui Stirling Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>

int s[201][201], S[201][201];

int main(int argc, char ** argv) {
	
	int T, t, n, m, i, j;

	freopen(argc >= 2 ? argv[1] : "stirling.in", "r", stdin);
	freopen(argc >= 3 ? argv[2] : "stirling.out", "w", stdout);

	s[0][0] = 1;
	for(i = 1; i < 201; i++) {
		s[i][0] = s[0][i] = 0;
	}

	S[0][0] = 1;
	for(i = 1; i < 201; i++) {
		S[i][0] = S[0][i] = 0;
	}

	for(i = 1; i < 201; i++) {
		for(j = 1; j < 201; j++) {
			s[i][j] = (s[i - 1][j - 1] - (i - 1) * s[i - 1][j]) % 98999;
			S[i][j] = (S[i - 1][j - 1] + j * S[i - 1][j]) % 98999;
		}
	}

	scanf("%d", &T);

	while(T--) {
		scanf("%d%d%d", &t, &n, &m);
		printf("%d\n", t == 1 ? s[n][m] : S[n][m]);
	}
	return 0;
}