236252026-01-26 17:01:45KristófÚtadócpp17Elfogadva 50/50101ms8204 KiB
#include <iostream>
#include <vector>
#include <tuple>
#include <algorithm>
using namespace std;
vector<vector<int>> adj;
int n;
vector<bool> vis;
vector<int> subsize;
vector<tuple<int,int,int>> ans;

void subsizecalc(int s)
{
vis[s]=true;
for(auto x:adj[s])
    {
    if(!vis[x])
        {
        subsizecalc(x);
        subsize[s]+=subsize[x];

        }
    }
}
int timer=0;
void anscalc(int s)
{
vis[s]=true;
for(int x:adj[s])
    {
    if(!vis[x])
        {
        ans.push_back({s,x,(n-subsize[x])*subsize[x]*2});
        anscalc(x);
        }
    }
}

int main()
{
    cin>>n;
    adj.resize(n+1);
    vis.resize(n+1,false);
    subsize.resize(n+1,1);
    int x,y;
    ans.reserve(n+1);
    for(int i=0;i<n-1;i++)
        {
        cin>>x>>y;
        adj[y].push_back(x);
        adj[x].push_back(y);
        }
    subsizecalc(1);
    fill(vis.begin(), vis.end(), false);
    anscalc(1);
    //cout<<ans.size()<<" \n";
    vector<int> w(n-1);
    for(int &x:w)cin>>x;
    sort(w.begin(),w.end(),greater<int>());
    sort(ans.begin(),ans.end(),[](tuple<int,int,int> a,tuple<int,int,int> b)
         {
         return get<2>(a)>get<2>(b);
         });
    long long sum=0;
    for(int i=0;i<n-1;i++)
        {
        sum=(sum+(w[i]*1LL)*(get<2>(ans[i])*1LL))%32609;
        }
    cout<<sum<<"\n";
    for(int i=0;i<n-1;i++)
        {
        cout<<get<0>(ans[i])<<" "<<get<1>(ans[i])<<" "<<w[i]<<"\n";
        }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/02ms508 KiB
2Elfogadva0/039ms2284 KiB
3Elfogadva2/22ms316 KiB
4Elfogadva2/22ms508 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva8/894ms8204 KiB
9Elfogadva2/23ms316 KiB
10Elfogadva2/22ms316 KiB
11Elfogadva2/23ms316 KiB
12Elfogadva2/23ms316 KiB
13Elfogadva2/22ms316 KiB
14Elfogadva2/297ms5108 KiB
15Elfogadva2/293ms5156 KiB
16Elfogadva2/296ms5172 KiB
17Elfogadva2/298ms5172 KiB
18Elfogadva2/297ms5172 KiB
19Elfogadva2/298ms5172 KiB
20Elfogadva2/297ms5172 KiB
21Elfogadva2/2101ms5172 KiB
22Elfogadva2/297ms5172 KiB
23Elfogadva2/2101ms5172 KiB
24Elfogadva2/297ms5176 KiB