結果
問題 | No.2427 Tree Distance Two |
ユーザー |
|
提出日時 | 2023-11-09 20:21:36 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 1,971 ms / 2,000 ms |
コード長 | 1,423 bytes |
コンパイル時間 | 2,432 ms |
コンパイル使用メモリ | 79,752 KB |
実行使用メモリ | 199,932 KB |
最終ジャッジ日時 | 2024-09-26 00:33:47 |
合計ジャッジ時間 | 36,695 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 35 |
ソースコード
import java.util.*;import java.io.*;//無向グラフクラスを使うと、TLEした。public class Main {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(br.readLine());int[] edgeCounts = new int[n+1];HashMap<Integer , Set<Integer>> list = new HashMap<>();for(int i=1,len=n;i<=len;i++){list.put(i ,new HashSet<>());}for(int i=0,len=n-1;i<len;i++){String[] data = br.readLine().split(" ");int u = Integer.parseInt(data[0]);int v = Integer.parseInt(data[1]);list.get(u).add(v);list.get(v).add(u);edgeCounts[u]++;edgeCounts[v]++;}br.close();StringBuilder sb = new StringBuilder();int edgeSum = 0;for(int i=1,len=n;i<=len;i++){//頂点iがつながっている(隣接する)各頂点がもつ、辺の数を調べ、合計(edgeSum)をとる。for(int to : list.get(i)){edgeSum += edgeCounts[to];}//頂点iがもつ辺の数と、辺の数の合計(edgeSum)を引く。sb.append(edgeSum - edgeCounts[i]+"\n");edgeSum = 0;}System.out.print(sb);}}