답안 #137516

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
137516 2019-07-28T05:56:15 Z abacaba Mag (COCI16_mag) C++14
12 / 120
509 ms 132600 KB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int inf = 2e9;
const int N = 1e6 + 15;
int n, m, a[N], dp[N];
vector <int> g[N];
pair <int, int> ans = {inf, 1};

void dfs(int v, int p = -1) {
    for(int to : g[v]) {
        if(p != to) {
            dfs(to, v);
            pair <int, int> x = {a[v] * a[to], 2LL + dp[to]};
            if(x.first * ans.second < ans.first * x.second) {
                ans = x;
                int c = __gcd(x.first, x.second);
                if(c)
                    ans.first /= c, ans.second /= c;
            }
            if(a[to] == 1)
                dp[v] = max(dp[v], dp[to] + 1);
        }
    }
}

#undef int

int main() {
    #define int long long
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> n;
    for(int i = 1; i < n; ++i) {
        int u, v;
        cin >> u >> v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    for(int i = 1; i <= n; ++i) {
        cin >> a[i];
        pair <int, int> x = {a[i], 1LL};
        if(a[i] < ans.first)
            ans = x;
    }
    dfs(1);
    cout << ans.first << '/' << ans.second << endl;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 25 ms 24056 KB Output is correct
2 Correct 24 ms 23800 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 24 ms 24056 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 439 ms 94272 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 23 ms 23800 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 496 ms 132600 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 463 ms 85764 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 447 ms 90216 KB Output is correct
2 Incorrect 89 ms 30712 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 88 ms 30672 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 441 ms 83364 KB Output is correct
2 Incorrect 484 ms 86964 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Correct 509 ms 86476 KB Output is correct
2 Incorrect 364 ms 58012 KB Output isn't correct