Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: meme_boi2
Problemset: Fast Delivery
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-18 23:20:15
#include <bits/stdc++.h>
using namespace std;
int n, m;
#define pii pair<int,int>
vector<vector<pair<int,int>>> path(3001);
priority_queue<pii,vector<pii>,greater<pii>> pq;
int pa[3001];
vector<int> dist(3001,2e9);
int32_t main(){
cin.tie(nullptr)->sync_with_stdio(0);
cin >> n >> m;
while(m--){
int u, v, w;
cin >> u >> v >> w;
path[u].push_back({v,w});
// path[v].push_back({u,w});
}
int s; cin >> s;
pq.push({0,s});
dist[s] = 0;
pa[s] = -1;
while(!pq.empty()){
auto [w,u] = pq.top();
pq.pop();
if(dist[u] < w) continue;
for(auto [v,x] : path[u]){
if(dist[u] + x < dist[v]){
pa[v]= u;
pq.push({dist[v] = dist[u] + x, v} );
}
}
}
for(int i =0; i < n; i++){
if(i == s) continue;
bool kuy = 1;
cout << s << " -> " << i << " (";
if(dist[i] != 2e9) cout << dist[i];
else {cout << "inf" ; kuy = 0;}
cout << ')' << ' ';
if(!kuy) { cout << '\n'; continue;}
int u = i;
vector<int> graph;
while(u != -1){
// cout << u << "kuy\n";
graph.push_back(u);
u = pa[u];
}
for(int i = graph.size() - 1; i >= 0; i--){
cout << graph[i] << ' ';
}
cout << '\n';
}
}
/*
c2_su65_delivery
cd "c:\Users\RICOH-NB110\Desktop\Computer Programing\gchan\" ; if ($?) { g++ c2_su65_delivery.cpp -o c2_su65_delivery } ; if ($?) { .\c2_su65_delivery}
*/