結果

問題 No.994 ばらばらコイン
ユーザー joybeeeejoybeeee
提出日時 2020-05-14 22:30:45
言語 Java21
(openjdk 21)
結果
AC  
実行時間 1,184 ms / 2,000 ms
コード長 1,169 bytes
コンパイル時間 2,150 ms
コンパイル使用メモリ 80,284 KB
実行使用メモリ 85,688 KB
最終ジャッジ日時 2024-09-16 03:21:53
合計ジャッジ時間 14,511 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 120 ms
41,120 KB
testcase_01 AC 125 ms
41,316 KB
testcase_02 AC 869 ms
84,272 KB
testcase_03 AC 893 ms
82,368 KB
testcase_04 AC 950 ms
80,908 KB
testcase_05 AC 619 ms
57,272 KB
testcase_06 AC 1,184 ms
85,688 KB
testcase_07 AC 954 ms
79,448 KB
testcase_08 AC 906 ms
74,788 KB
testcase_09 AC 783 ms
72,940 KB
testcase_10 AC 685 ms
66,100 KB
testcase_11 AC 940 ms
76,364 KB
testcase_12 AC 927 ms
73,132 KB
testcase_13 AC 110 ms
40,960 KB
testcase_14 AC 98 ms
39,796 KB
testcase_15 AC 109 ms
41,244 KB
testcase_16 AC 120 ms
41,288 KB
testcase_17 AC 106 ms
40,484 KB
testcase_18 AC 125 ms
41,320 KB
testcase_19 AC 116 ms
40,244 KB
testcase_20 AC 101 ms
39,988 KB
testcase_21 AC 104 ms
39,804 KB
testcase_22 AC 101 ms
40,096 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.*;
public class Main {

  public static void main(String[] args) { 
      Scanner sc = new Scanner(System.in);
      int n = sc.nextInt();
      int k = sc.nextInt();
      Map<Integer, List<Integer>> graph = new HashMap<>();
      for(int i = 1; i <= n; i++)
        graph.put(i, new ArrayList<>());

      for(int i = 0; i < n-1; i++) {
        int a = sc.nextInt();
        int b = sc.nextInt();
        graph.get(a).add(b);
        graph.get(b).add(a);
      }
      Queue<Integer> queue = new LinkedList<>();
      queue.offer(1);
      Set<Integer> visited = new HashSet<>();
      visited.add(1);
      k--;
      int steps = 0;
      if(k == 0) {
        System.out.println(steps);
        return;
      }
      while(!queue.isEmpty()) {
        int node = queue.poll();
        List<Integer> adj = graph.get(node);
        for(int adjNode : adj) {
          if(visited.contains(adjNode)) continue;
          visited.add(adjNode);
          queue.offer(adjNode);
          k--;
          steps++;
          if(k == 0) {
            System.out.println(steps);
            return;
          }
        }
      }
      System.out.println(-1);
  }
}
0