Submission #876824

# Submission time Handle Problem Language Result Execution time Memory
876824 2023-11-22T11:57:10 Z overwatch9 Sjekira (COCI20_sjekira) C++17
40 / 110
1000 ms 20292 KB
//subtask3
#include <iostream>
#include <vector>
#include <set>
using namespace std;
using ll = long long;
vector <bool> blocked;
vector <vector <int>> adj;
vector <int> col;
int dfs(int s, int p) {
    int ans = col[s];
    for (auto i : adj[s]) {
        if (!blocked[i] && i != p)
            ans = max(ans, dfs(i, s));
    }
    return ans;
}
int main() {
    //freopen("in.txt", "r", stdin);
    int n;
    cin >> n;
    adj.resize(n+1);
    col.resize(n+1);
    multiset <pair <int, int>> s;
    for (int i = 1; i <= n; i++) {
        int t;
        cin >> t;
        col[i] = t;
        s.insert({t, i});
    }
    for (int i = 0; i < n-1; i++) {
        int a, b;
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    blocked.resize(n+1);
    ll ans = 0;
    while (!s.empty()) {
        ll mx = s.rbegin()->first, pos = s.rbegin()->second;
        s.erase(--s.end());
        ll added = 0;
        for (auto i : adj[pos]) {
            if (!blocked[i]) {
                added++;
                ans += dfs(i, pos);
            }
        }
        blocked[pos] = true;
        ans += mx * added;
    }
    cout << ans << '\n';
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 105 ms 15212 KB Output is correct
2 Correct 81 ms 11092 KB Output is correct
3 Correct 75 ms 10244 KB Output is correct
4 Correct 84 ms 13472 KB Output is correct
5 Correct 131 ms 16980 KB Output is correct
6 Execution timed out 1046 ms 20292 KB Time limit exceeded
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 2 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 2 ms 344 KB Output is correct
10 Correct 4 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 105 ms 15212 KB Output is correct
7 Correct 81 ms 11092 KB Output is correct
8 Correct 75 ms 10244 KB Output is correct
9 Correct 84 ms 13472 KB Output is correct
10 Correct 131 ms 16980 KB Output is correct
11 Execution timed out 1046 ms 20292 KB Time limit exceeded
12 Halted 0 ms 0 KB -