Submission #1333631

#TimeUsernameProblemLanguageResultExecution timeMemory
1333631yc11Wind Turbines (EGOI25_windturbines)C++20
0 / 100
4093 ms19692 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<vector<pair<int,int> > > n1;


signed main(){
    int n,m,q;
    cin>>n>>m>>q;
    n1.resize(n);
    for (int i = 0;i<m;i++){
        int a,b,c;
        cin>>a>>b>>c;
        n1[a].push_back(make_pair(b,c));
        n1[b].push_back(make_pair(a,c));
    }
    for (int i = 0;i<q;i++){
        int l,r;
        cin>>l>>r;
        int ans = 0;
        vector<int> d;
        d.assign(n,1e9);
        int ans1 = r-l+1;
        priority_queue<pair<int,pair<int,int> >, vector<pair<int,pair<int,int> > >, greater<pair<int,pair<int, int> > > > pq;
        for (int j = l;j<=r;j++){
            d[j] = 0;
            for (int k = 0;k<n1[j].size();k++){
                pq.push(make_pair(n1[j][k].second,make_pair(n1[j][k].first,n1[j][k].second)));
            }
        }
        while (!pq.empty()){

            int a = pq.top().first;
            int b = pq.top().second.first;
            int c = pq.top().second.second;

            pq.pop();
            if (d[b]<=c) continue;
            d[b] = c;
            ans = ans+a;
          
            for (int j = 0;j<n1[b].size();j++){
                if (d[n1[b][j].first]>a+n1[b][j].second){
                    pq.push(make_pair(n1[b][j].second,make_pair(n1[b][j].first,n1[b][j].second+c)));
                
                }
            }
        }
        cout<<ans<<"\n";



    }

    return 0;
    }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...