Submission #30858093


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

int main() {
  int N;
  cin >> N;

  priority_queue<pair<int, int>> q;
  q.emplace(0, 0);
  for (int i = 1; i < N; i++) {
    int A;
    cin >> A;
    q.emplace(A, i);
  }

  vector<vector<int>> g(N);
  for (int i = 1; i < N; i++) {
    int u, v;
    cin >> u >> v;
    u--, v--;
    g[u].emplace_back(v);
    g[v].emplace_back(u);
  }

  vector<int> parents(N);
  function<void(int, int)> dfs = [&](int x, int p) {
    parents[x] = p;
    for (int nx : g[x]) {
      if (nx != p) {
        dfs(nx, x);
      }
    }
  };
  // N: no parent
  dfs(0, N);

  // -1: non-zero, else: next candidate for non-zero
  vector<int> skip(N + 1, -1);
  // find the nearest non-zero ancestor
  function<int(int)> find_non_zero = [&](int x) {
    // path compression like DSU
    return skip[x] == -1 ? x : skip[x] = find_non_zero(skip[x]);
  };

  while (true) {
    auto [a, x] = q.top();
    q.pop();

    int non_zero = find_non_zero(parents[x]);
    if (non_zero == N) {
      cout << a << endl;
      break;
    }
    // replace with zero and set candidate
    skip[non_zero] = parents[non_zero];
  }
}

Submission Info

Submission Time
Task G - Game on Tree 3
User dnek
Language C++ (GCC 9.2.1)
Score 600
Code Size 1141 Byte
Status AC
Exec Time 198 ms
Memory 32872 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 65
Set Name Test Cases
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, 061.txt, 062.txt, example0.txt, example1.txt
Case Name Status Exec Time Memory
000.txt AC 19 ms 3428 KiB
001.txt AC 130 ms 17832 KiB
002.txt AC 164 ms 21644 KiB
003.txt AC 148 ms 23856 KiB
004.txt AC 150 ms 21644 KiB
005.txt AC 150 ms 22604 KiB
006.txt AC 154 ms 28924 KiB
007.txt AC 190 ms 32872 KiB
008.txt AC 165 ms 25428 KiB
009.txt AC 161 ms 25396 KiB
010.txt AC 159 ms 21552 KiB
011.txt AC 159 ms 21552 KiB
012.txt AC 148 ms 25176 KiB
013.txt AC 82 ms 9400 KiB
014.txt AC 193 ms 17496 KiB
015.txt AC 8 ms 3620 KiB
016.txt AC 145 ms 14060 KiB
017.txt AC 142 ms 13988 KiB
018.txt AC 145 ms 14140 KiB
019.txt AC 51 ms 6624 KiB
020.txt AC 54 ms 6792 KiB
021.txt AC 62 ms 7676 KiB
022.txt AC 142 ms 13864 KiB
023.txt AC 190 ms 17296 KiB
024.txt AC 198 ms 17256 KiB
025.txt AC 198 ms 17492 KiB
026.txt AC 192 ms 17296 KiB
027.txt AC 190 ms 17392 KiB
028.txt AC 181 ms 17424 KiB
029.txt AC 190 ms 17248 KiB
030.txt AC 179 ms 17424 KiB
031.txt AC 188 ms 17324 KiB
032.txt AC 182 ms 17220 KiB
033.txt AC 184 ms 17224 KiB
034.txt AC 180 ms 17320 KiB
035.txt AC 186 ms 17492 KiB
036.txt AC 178 ms 17256 KiB
037.txt AC 185 ms 17388 KiB
038.txt AC 184 ms 17216 KiB
039.txt AC 184 ms 17304 KiB
040.txt AC 185 ms 17324 KiB
041.txt AC 190 ms 17424 KiB
042.txt AC 176 ms 17248 KiB
043.txt AC 181 ms 17420 KiB
044.txt AC 165 ms 17308 KiB
045.txt AC 169 ms 17216 KiB
046.txt AC 167 ms 17424 KiB
047.txt AC 173 ms 17324 KiB
048.txt AC 170 ms 17424 KiB
049.txt AC 178 ms 17296 KiB
050.txt AC 174 ms 17496 KiB
051.txt AC 175 ms 17328 KiB
052.txt AC 176 ms 17496 KiB
053.txt AC 192 ms 17292 KiB
054.txt AC 181 ms 17292 KiB
055.txt AC 185 ms 17216 KiB
056.txt AC 187 ms 17424 KiB
057.txt AC 182 ms 17392 KiB
058.txt AC 186 ms 17488 KiB
059.txt AC 190 ms 17252 KiB
060.txt AC 192 ms 17392 KiB
061.txt AC 194 ms 17308 KiB
062.txt AC 192 ms 17492 KiB
example0.txt AC 3 ms 3384 KiB
example1.txt AC 3 ms 3456 KiB