結果
| 問題 |
No.1878 union-find の数え上げ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-12-24 06:16:11 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 642 ms / 2,000 ms |
| コード長 | 1,905 bytes |
| コンパイル時間 | 2,172 ms |
| コンパイル使用メモリ | 80,180 KB |
| 実行使用メモリ | 79,328 KB |
| 最終ジャッジ日時 | 2024-10-03 09:23:51 |
| 合計ジャッジ時間 | 8,149 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 13 |
ソースコード
import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
class Main{
final long p = 998244353;
long ans=1;
void dfs(int v, int d, ArrayList<Integer>[] g) {
if (d > 0) ans = ans * d % p;
for (int u : g[v]) {
dfs(u, d + 1, g);
}
}
void run() throws Exception {
Scanner sc=new Scanner(System.in);
PrintWriter pw=new PrintWriter(System.out);
int N=sc.nextInt();
ArrayList<Integer>[] g=new ArrayList[N];
for (int i=0;i<N;++i) g[i]=new ArrayList<>();
for (int i=1;i<N;++i) {
int p=sc.nextInt()-1;
g[p].add(i);
}
dfs(0, 0, g);
System.out.println(ans);
pw.close();
}
// void generate_random() throws Exception {
// Random rnd=new Random();
// for (int testcase=1;testcase<=5;++testcase) {
// File file=new File("random_"+testcase);
// PrintWriter pw=new PrintWriter(file);
// int N=100000;
// pw.println(N);
// for (int i=2;i<=N;++i) {
// int p=rnd.nextInt(1, i);
// pw.println(p);
// }
// pw.close();
// }
// }
//
// void generate_line() throws Exception {
// File file=new File("line");
// PrintWriter pw=new PrintWriter(file);
// Random rnd=new Random();
// int N=100000;
// pw.println(N);
// for (int i=2;i<=N;++i) {
// int p=i-1;
// pw.println(p);
// }
// pw.close();
// }
//
// void generate_star() throws Exception {
// File file=new File("star");
// PrintWriter pw=new PrintWriter(file);
// Random rnd=new Random();
// int N=100000;
// pw.println(N);
// for (int i=2;i<=N;++i) {
// int p=1;
// pw.println(p);
// }
// pw.close();
// }
public static void main(String args[]) throws Exception {
new Main().run();
}
void tr(Object...o) {
System.out.println(Arrays.deepToString(o));
}
}