Pagini recente » Cod sursa (job #2687497) | Cod sursa (job #35775) | Cod sursa (job #1288534) | Cod sursa (job #709143) | Cod sursa (job #2205530)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream fi("pscnv.in");
ofstream fo("pscnv.out");
int n,m,x,y,a,b,c,C[250005],i;
vector<pair<int,int> > V[250005];
priority_queue<pair<int,int> > Q;
vector<pair<int,int> >::iterator it;
pair<int,int> val;
int main()
{
fi>>n>>m>>x>>y;
for(i=1; i<=m; i++)
{
fi>>a>>b>>c;
V[a].push_back({b,c});
}
for(i=1; i<=n; i++)
C[i]=-1;
C[x]=0;
Q.push({0,x});
while(!Q.empty())
{
val=Q.top();
Q.pop();
if(C[val.second]!=-val.first)
continue;
for(it=V[val.second].begin(); it!=V[val.second].end(); it++)
{
c=max((*it).second,-val.first);
if(C[(*it).first]==-1 || C[(*it).first]>c)
{
C[(*it).first]=c;
Q.push({-c,(*it).first});
}
}
}
fo<<C[y]<<"\n";
fi.close();
fo.close();
return 0;
}