Pagini recente » Cod sursa (job #1879741) | Cod sursa (job #783671) | Cod sursa (job #2825957) | Cod sursa (job #2271250) | Cod sursa (job #2669654)
#include<bits/stdc++.h>
using namespace std;
int x,y,n,m;
vector<int>v[250010];
vector<int> d[250010];
queue<int> q;
bool bfs(int len){
cout<<len<<": ";
vector<bool> viz(n+1, 0);
while(!q.empty()) q.pop();
q.push(x);
viz[x] = 1;
while(!q.empty() && !viz[y]){
int curr = q.front();
viz[curr] = 1;
cout<<curr<<' ';
q.pop();
for(int i = 0;i<v[curr].size();i++){
int next = v[curr][i];
if(!viz[next] && d[curr][i] <= len){
q.push(next);
}
}
}
cout<<'\n';
return viz[y];
}
int cautbin(){
int st = 0, dr = 1000,mid, last;
while(st<=dr){
mid = (st+dr)/2;
if(bfs(mid)){
dr = mid - 1;
}
else
st = mid+1;
}
return st;
}
int main(){
ifstream cin("pscnv.in");
ofstream cout("pscnv.out");
cin>>n>>m>>x>>y;
for(int i = 0;i<m;i++){
int a,b,c;
cin>>a>>b>>c;
v[a].push_back(b);
d[a].push_back(c);
}
cout<<cautbin();
return 0;
}