Submission #1000493

#TimeUsernameProblemLanguageResultExecution timeMemory
1000493De3b0oReconstruction Project (JOI22_reconstruction)C++14
7 / 100
5086 ms10772 KiB
#include<bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define in insert
#define pb push_back
#define ppb pop_back()
#define d3 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define cans cout << ans << "\n";
#define yes cout << "Yes" << "\n";
#define no cout << "No" << "\n";
#define pll pair<ll,ll>
#define lin cout << "\n";
#define sqr 340
#define mod 1000000007
#define mid ((l+r)/2)
#define lc (2*x)
#define rc (2*x+1)

using namespace std;

ll n , m , q;
ll dsu[509];
ll sz[509];
ll e1[100009] , e2[100009] , c[100009];

ll gp(ll u)
{
    if(dsu[u]==u)
        return u;
    return dsu[u]=gp(dsu[u]);
}

void merg(ll u , ll v)
{
    u = gp(u);
    v = gp(v);
    if(sz[v]>sz[u])
        swap(u,v);
    sz[u]+=sz[v];
    dsu[v]=u;
}

ll mst(ll x)
{
    for(int i = 1 ; n>=i ; i++)
    {
        dsu[i]=i;
        sz[i]=1;
    }
    vector<pair<ll,pll>> v;
    for(int i = 0 ; m>i ; i++)
        v.pb({abs(c[i]-x),{e1[i],e2[i]}});
    sort(v.begin(),v.end());
    ll ans = 0;
    for(auto it : v)
    {
        if(gp(it.S.F)==gp(it.S.S))
            continue;
        merg(it.S.F,it.S.S);
        ans+=it.F;
    }
    return ans;
}

int main()
{
    d3
    cin >> n >> m;
    for(int i = 0 ; m>i ; i++)
    {
        ll u , v , w;
        cin >> u >> v >> w;
        e1[i]=u;
        e2[i]=v;
        c[i]=w;
    }
    cin >> q;
    while(q--)
    {
        ll x;
        cin >> x;
        ll ans = mst(x);
        cans
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...