結果
問題 | No.1103 Directed Length Sum |
ユーザー |
![]() |
提出日時 | 2020-07-03 21:48:11 |
言語 | Java (openjdk 23) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,094 bytes |
コンパイル時間 | 1,943 ms |
コンパイル使用メモリ | 78,652 KB |
実行使用メモリ | 270,320 KB |
最終ジャッジ日時 | 2024-09-17 00:08:14 |
合計ジャッジ時間 | 7,638 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | TLE * 1 -- * 21 |
ソースコード
import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;public class Main {static int n;static List<List<Integer>> list;static long ans = 0;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));n = Integer.parseInt(br.readLine());list = new ArrayList<>(n);for (int i = 0; i < n; i++) {list.add(new ArrayList<>());}boolean[] in = new boolean[n];for (int i = 0; i < n - 1; i++) {String[] sa = br.readLine().split(" ");int a = Integer.parseInt(sa[0]) - 1;int b = Integer.parseInt(sa[1]) - 1;list.get(a).add(b);in[b] = true;}br.close();int root = 0;for (int i = 0; i < in.length; i++) {if (!in[i]) {root = i;break;}}dfs(root, -1, 1);System.out.println(ans);}static int dfs(int x, int p, int size) {int cnt = 0;for (int next : list.get(x)) {if (next != p) {cnt += dfs(next, x, size + 1);}}ans += (long) cnt * size;return cnt + 1;}}