90002024-02-11 16:39:08xxxÚtadópython3Futási hiba 0/5018ms13924 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct adat {
    int a, b, c, d, e;
};
const int MOD = 32609;
const int mxN = 1e5+1;
vector<vector<int> > adj;
vector<pair<int, int> > suly(mxN);
vector<adat> ans;
int n;

bool rendez(adat x, adat y) {
    if (x.e > y.e) {
        return true;
    }
    return false;
}

int dfs(int v, int p) {
    suly[v].first = 0;
    suly[v].second = 0;
    int cnt = 0;
    for(int u : adj[v]) {
        if (u != p) {
            if (cnt == 0) {
                suly[v].first = dfs(u, v);
                cnt++;
            } else if (cnt == 1) {
                suly[v].second = dfs(u, v);
                cnt++;
            } 
        }
    }
    return suly[v].first + suly[v].second + 1; 
}

void dfs2(int v, int p, int d) {
    int cnt = 0;
    for(int u : adj[v]) {
        if(u != p) {
            dfs2(u, v, cnt);
            cnt++;
        }
    }
    if (d == 0) {
        ans.push_back({suly[p].first, n-suly[p].first, p, v, 0});
    } else if (d == 1) {
        ans.push_back({n-suly[p].second, suly[p].second, p, v, 0});
    }
} 


signed main() {
    ios::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL);
    cin >> n;
    adj.resize(n+1);
    for(int i = 1; i < n; i++) {
        int x, y;
        cin >> x >> y;
        adj[x].push_back(y);
        adj[y].push_back(x);
    }

    dfs(1, -1);
    dfs2(1, 0, -1);


    vector<int> v(n);
    for(int i = 0; i < n; i++) {
        cin >> v[i];
    }
    sort(v.rbegin(), v.rend());

    for(auto& [x, y, z, cs, w] : ans) {
        w = x * y;
        w %= MOD;
    }

    sort(ans.begin(), ans.end(), rendez);

    int anscnt = 0;

    for(int i = 0; i < n-1; i++) {
        anscnt += ans[i].e * v[i];
        anscnt %= MOD;
    }

    cout << anscnt * 2 << endl;

    for(int i = 0; i < n-1; i++) {
        cout << ans[i].c << ' ' << ans[i].d << ' ' << v[i] << endl;
    }
    
    

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Futási hiba0/017ms10900 KiB
2Futási hiba0/017ms10860 KiB
3Futási hiba0/217ms11332 KiB
4Futási hiba0/218ms11556 KiB
5Futási hiba0/217ms11752 KiB
6Futási hiba0/217ms12076 KiB
7Futási hiba0/217ms11984 KiB
8Futási hiba0/817ms12260 KiB
9Futási hiba0/217ms12364 KiB
10Futási hiba0/217ms12488 KiB
11Futási hiba0/217ms12528 KiB
12Futási hiba0/217ms12464 KiB
13Futási hiba0/217ms12828 KiB
14Futási hiba0/217ms12944 KiB
15Futási hiba0/217ms13320 KiB
16Futási hiba0/217ms13312 KiB
17Futási hiba0/217ms13432 KiB
18Futási hiba0/217ms13708 KiB
19Futási hiba0/217ms13600 KiB
20Futási hiba0/217ms13528 KiB
21Futási hiba0/217ms13884 KiB
22Futási hiba0/217ms13712 KiB
23Futási hiba0/217ms13924 KiB
24Futási hiba0/217ms13516 KiB