結果
問題 |
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); } }