Pagini recente » Cod sursa (job #2290639) | Cod sursa (job #1171692) | Cod sursa (job #541448) | Clasament 545365768778888853 | Cod sursa (job #3242356)
//package stirling;
import java.io.*;
import java.util.*;
public class Main {
static final String INPUT_FILE = "stirling.in";
static final String OUTPUT_FILE = "stirling.out";
public static class TokenizedReader {
private final BufferedReader reader;
private StringTokenizer tokenizer;
TokenizedReader(String filePath) throws FileNotFoundException {
reader = new BufferedReader(new FileReader(filePath));
}
private String nextToken() {
while (tokenizer == null || !tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(reader.readLine());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
}
private int nextInt() {
return Integer.parseInt(nextToken());
}
public void close() throws IOException {
reader.close();
}
}
public static void main(String[] args) throws IOException {
TokenizedReader reader = new TokenizedReader(INPUT_FILE);
PrintWriter writer = new PrintWriter(OUTPUT_FILE);
solve(reader, writer);
reader.close();
writer.flush();
writer.close();
}
private static final int MAX_N = 201;
private static final int MOD = 98999;
public static void solve(TokenizedReader reader,
PrintWriter writer) {
// preprocessing
int[][] s = new int[MAX_N][MAX_N];
int[][] S = new int[MAX_N][MAX_N];
s[1][1] = S[1][1] = 1;
for (int i = 2; i < MAX_N; ++i)
for (int j = 1; j <= i; ++j) {
s[i][j] = (s[i - 1][j - 1] - (i - 1) * s[i - 1][j]) % MOD;
S[i][j] = (S[i - 1][j - 1] + j * S[i - 1][j]) % MOD;
}
int n = reader.nextInt();
while (n-- > 0) {
int op = reader.nextInt();
int a = reader.nextInt();
int b = reader.nextInt();
if (op == 1) {
writer.println(s[a][b]);
} else if (op == 2) {
writer.println(S[a][b]);
}
}
}
}