Submission #1360008

#TimeUsernameProblemLanguageResultExecution timeMemory
1360008adriines06Wind Turbines (EGOI25_windturbines)C++20
0 / 100
4094 ms6248 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<pair<ll,ll>>gr;
vector<pair<ll,ll>>w;
vector<ll>p,sz;
ll Find(ll x){
    if(p[x]==x) return x;
    return p[x]=Find(p[x]);
}
void Union(ll x,ll y){
    ll a=Find(x), b=Find(y);
    if(a!=b){
        if(sz[a]<sz[b]) swap(a,b); 
        p[b]=a;
        sz[a]+=sz[b];
    }
}
void solve(){
    ll n,m,q; cin>>n>>m>>q;
    vector<ll>pr(n,0);
    gr.resize(m);
    w.resize(m);
    p.resize(n);
    sz.assign(n,1);
    for(ll i=0;i<m;i++){
        ll u,v,c; cin>>u>>v>>c;
        w[i]={c,i};
        gr[i]={u,v};
        pr[i+1]=pr[i]+c;
    }
    sort(w.begin(),w.end());
    //   cout<<pr[l]+(pr[n-1]-pr[r])<<"\n";
    for(ll i=0;i<q;i++){
        ll l,r; cin>>l>>r;
        ll ans=0;
        for(ll i=0;i<n;i++) p[i]=i;
        for(ll j=l;j<r;j++){
            Union(j,j+1);
        }
        for(ll i=0;i<m;i++){
            ll idx=w[i].second;
            ll a=gr[idx].first, b=gr[idx].second;
            if(Find(a)!=Find(b)){
                Union(a,b);
                ans+=w[i].first;
            }
        }
        cout<<ans<<"\n";

    }


}
int main(){
    ios::sync_with_stdio(0);
    cout.tie(0);
    cin.tie(0);
    solve();
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...