Submission #1351202

#TimeUsernameProblemLanguageResultExecution timeMemory
1351202rieyuwWind Turbines (EGOI25_windturbines)C++20
8 / 100
36 ms9624 KiB
#include<bits/stdc++.h>

using namespace std;
#define sz(x) (int)(x).size()
 
const int INF = 1e9 + 7;
//const long long INF = 1e18 + 7;
//const int mod = 998244353; 
const int mod = 1e9 + 7;
//const int inv2 = 499122177;
const int mxN = 1e7;

int main()
{
    ios::sync_with_stdio(0); cin.tie(0);
    //freopen("_.in", "r", stdin);
    //freopen("_.out", "w", stdout);
    int n, m, q; cin >> n >> m >> q;
    vector<vector<pair<int, int>>> adj(n);
    int g1 = (m == n-1);
    for (int u, v, w, i = 0; i < m; ++i)
    {
        cin >> u >> v >> w;
        g1 &= (v-1 == u);
        adj[u].push_back({v, w});
        adj[v].push_back({u, w});
    }

    vector<long long> pre(m+1, 0);
    if(g1)
    {
        for (int i = 0; i < n-1; ++i)
        {
            int w = (adj[i][0].first == i+1 ? adj[i][0].second : adj[i][1].second);
            pre[i+1] = pre[i] + w;
        }
    }


    for (int l, r, i = 0; i < q; ++i)
    {
        cin >> l >> r;
        if (g1) 
        {
            //cout << "All sum: " << pre[m] << ", up to " << r << ": " << pre[r] << ", up to " << l << ": " << pre[l] << ", ans: ";
            cout << pre[m] - pre[r] + pre[l] << "\n";
        }
        else
            cout << "-1\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...