Cod sursa(job #2657566)

Utilizator mihaifnMihai Stoica mihaifn Data 11 octombrie 2020 01:51:54
Problema Numerele lui Stirling Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

const int mod = 98999;

void first(vector<vector<int>>& s)
{
	s[1][1] = 1;

	for (int i = 2; i < 201; i++)
		for (int j = 1; j <= i; j++)
			s[i][j] = (s[i - 1][j - 1] - (i - 1) * s[i - 1][j]) % mod;
}

void second(vector<vector<int>>& S)
{
	S[1][1] = 1;

	for (int i = 2; i < 201; i++)
		for (int j = 1; j <= i; j++)
			S[i][j] = (S[i - 1][j - 1] - j * S[i - 1][j]) % mod;
}

int main()
{
	ifstream fin("stirling.in");
	ofstream fout("stirling.out");

	int n, m, t, tip;

	fin >> t;

	vector<vector<int>> s(201, vector<int>(201, 0));
	vector<vector<int>> S(201, vector<int>(201, 0));

	first(s);
	second(S);

	while (t--) {
		fin >> tip >> n >> m;
		if (tip == 1)
			fout << s[n][m] << "\n";
		else
			fout << S[n][m] << "\n";
	}

	fin.close();
	fout.close();

	return 0;

}