Submission #823708

#TimeUsernameProblemLanguageResultExecution timeMemory
823708Sandarach151Autobus (COCI22_autobus)C++17
0 / 70
1 ms340 KiB
#include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); long long n, m; cin >> n >> m; vector<pair<long long, long long>> adg[n]; for(long long i=0; i<m; i++){ long long a, b; long long c; cin >> a >> b >> c; adg[a-1].push_back({b-1, c}); } long long k, q; cin >> k >> q; vector<vector<long long>> shortest(n, vector<long long>(n, 100000000000000043LL)); for(long long i=0; i<n; i++){ queue<pair<long long, long long>> que; //pos, cnt que.push({i, 0}); shortest[i][i]=0; while(!que.empty()){ pair<long long, long long> cur = que.front(); que.pop(); if(cur.second>k){ continue; } for(auto u : adg[cur.first]){ if(shortest[i][u.first]>shortest[i][cur.first]+u.second){ shortest[i][u.first]=min(shortest[i][u.first], shortest[i][cur.first]+u.second); que.push({u.first, cur.second+1}); } } } } for(long long i=0; i<q; i++){ long long a, b; cin >> a >> b; cout << (shortest[a-1][b-1]==100000000000000043LL ? -1 : shortest[a-1][b-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...