Submission #1771871


Source Code Expand

import std.algorithm, std.conv, std.range, std.stdio, std.string;
import std.container; // SList, DList, BinaryHeap

void main()
{
  auto rd1 = readln.split.to!(int[]), n = rd1[0], x = rd1[1]-1;
  auto h = readln.split.to!(int[]);
  auto g = new int[][](n);
  foreach (i; 0..n-1) {
    auto rd2 = readln.split.to!(int[]), a = rd2[0]-1, b = rd2[1]-1;
    g[a] ~= b;
    g[b] ~= a;
  }

  auto p = new int[](n), sh = h.dup;
  p[x] = n;

  auto q = DList!int(x), s = SList!int();
  while (!q.empty) {
    auto u = q.front; q.removeFront();
    s.insertFront(u);
    foreach (v; g[u])
      if (v != p[u]) {
        p[v] = u;
        q.insertFront(v);
      }
  }

  while (!s.empty) {
    auto u = s.front; s.removeFront();
    foreach (v; g[u])
      if (v != p[u]) sh[u] += sh[v];
  }

  auto ans = 0;
  q.insertFront(x);
  while (!q.empty) {
    auto u = q.front; q.removeFront();
    foreach (v; g[u])
      if (v != p[u] && sh[v]) {
        ++ans;
        q.insertBack(v);
      }
  }

  writeln(ans*2);
}

Submission Info

Submission Time
Task B - ツリーグラフ
User tesh
Language D (DMD64 v2.070.1)
Score 100
Code Size 1055 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 20
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_line01.txt, subtask1_line02.txt, subtask1_line03.txt, subtask1_line04.txt, subtask1_line05.txt, subtask1_line06.txt, subtask1_random01.txt, subtask1_random02.txt, subtask1_random03.txt, subtask1_random04.txt, subtask1_random05.txt, subtask1_random06.txt, subtask1_random07.txt, subtask1_random08.txt, subtask1_special01.txt, subtask1_special02.txt, subtask1_special03.txt, subtask1_special04.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 1 ms 256 KB
subtask0_sample_02.txt AC 1 ms 256 KB
subtask1_line01.txt AC 1 ms 256 KB
subtask1_line02.txt AC 1 ms 256 KB
subtask1_line03.txt AC 1 ms 256 KB
subtask1_line04.txt AC 1 ms 256 KB
subtask1_line05.txt AC 1 ms 256 KB
subtask1_line06.txt AC 1 ms 256 KB
subtask1_random01.txt AC 1 ms 256 KB
subtask1_random02.txt AC 1 ms 256 KB
subtask1_random03.txt AC 1 ms 256 KB
subtask1_random04.txt AC 1 ms 256 KB
subtask1_random05.txt AC 1 ms 256 KB
subtask1_random06.txt AC 1 ms 256 KB
subtask1_random07.txt AC 1 ms 256 KB
subtask1_random08.txt AC 1 ms 256 KB
subtask1_special01.txt AC 1 ms 256 KB
subtask1_special02.txt AC 1 ms 256 KB
subtask1_special03.txt AC 1 ms 256 KB
subtask1_special04.txt AC 1 ms 256 KB