# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
660929 | 2022-11-23T14:38:19 Z | Trisanu_Das | Mag (COCI16_mag) | C++14 | 709 ms | 262144 KB |
#include <bits/stdc++.h> using namespace std; const int maxn = 1e6 + 10; vector<int> g[maxn], len[maxn]; int a[maxn]; int memo[maxn]; int n; void add(int x, int t) { if (len[x][0] <= t) swap(len[x][0], t); len[x][1] = max(len[x][1], t); } int get(int x, int t=0) { return (a[x] == 1) * (len[x][t] + 1); } int dfs(int x, int p = 0) { len[x] = {0, 0}; for (int v : g[x]) { if (v == p) continue; add(x, dfs(v, x)); } return get(x); } int dfs_root(int x, int p = 0) { if (p) { int l = (a[p] == 1) * get(p, len[p][0] == get(x)); add(x, l); } memo[x] = len[x][0] + len[x][1]; for (int v : g[x]) { if (v == p) continue; dfs_root(v, x); } } int main() { scanf("%d", &n); for (int i = 1; i <= n-1; ++i) { int a, b; scanf("%d %d", &a, &b); g[a].emplace_back(b); g[b].emplace_back(a); } for (int i = 1; i <= n; ++i) { scanf("%d", a+i); } dfs(1); dfs_root(1); int x = -1, y = -1; for (int i = 1; i <= n; ++i) { if (x == -1 or x *1ll* (memo[i] + 1) > a[i] *1ll* y) { x = a[i]; y = memo[i] + 1; } } int g = __gcd(x, y); printf("%d/%d\n", x/g, y/g); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 61 ms | 95692 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 66 ms | 95672 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 491 ms | 262144 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 68 ms | 95640 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 709 ms | 262144 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 492 ms | 230088 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 474 ms | 231872 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 132 ms | 109712 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 449 ms | 221640 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 496 ms | 232028 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |