249472026-02-17 07:08:40szjÚtadócpp17Wrong answer 25/50115ms3912 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;
struct cuc
{
    ll el=0, su;
};
bool f(cuc a, cuc b)
{
    return a.su>b.su;
}
int main()
{
    //ifstream cin("f.txt");
    ios::sync_with_stdio(0);
    cin.tie(0);
    ll n, a, b, i, cica=0;
    cin >> n;
    ll apa[n+1]={0};
    cuc sum[n+1];
    ll alul[n+1]={};
    ll num[n+1]={};
    for(i=1; i<n; i++)
    {
        cin >> a >> b;
        apa[b]=a;
        num[a]++;
        sum[b].el=a;
    }
    queue<ll>q;
    for(i=1; i<=n; i++)
    {
        alul[i]=1;
        if(!num[i])q.push(i);
    }
    while(!q.empty() && q.front()!=1)
    {
        a=q.front();
        q.pop();
        num[apa[a]]--;
        sum[a].su=2*alul[a]*(n-alul[a]);
        alul[apa[a]]+=alul[a];
        if(num[apa[a]]==0)q.push(apa[a]);
    }
    sort(sum+2, sum+n+1, f);
    ll values[n];
    for(i=1; i<n; i++)cin >> values[i];
    sort(values+1, values+n, greater<ll>());
    for(i=1; i<n; i++)cica=(cica+values[i]*sum[i+1].su)%32609;
    cout << cica << endl;
    for(i=2; i<=n; i++)cout << sum[i].el << " " << i << " " << values[i-1] << endl;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base25/50
1Accepted0/01ms508 KiB
2Wrong answer0/041ms1788 KiB
3Partially correct1/21ms316 KiB
4Partially correct1/21ms316 KiB
5Partially correct1/21ms316 KiB
6Partially correct1/21ms316 KiB
7Partially correct1/21ms316 KiB
8Partially correct4/8108ms3748 KiB
9Partially correct1/23ms316 KiB
10Partially correct1/23ms668 KiB
11Partially correct1/23ms500 KiB
12Partially correct1/23ms512 KiB
13Partially correct1/23ms316 KiB
14Partially correct1/2108ms3892 KiB
15Partially correct1/2109ms3888 KiB
16Partially correct1/2103ms3912 KiB
17Partially correct1/2104ms3892 KiB
18Partially correct1/2103ms3892 KiB
19Partially correct1/2104ms3892 KiB
20Partially correct1/2101ms3892 KiB
21Partially correct1/2103ms3892 KiB
22Partially correct1/2112ms3892 KiB
23Partially correct1/2115ms3808 KiB
24Partially correct1/2101ms3892 KiB