Pagini recente » Cod sursa (job #2803252) | Cod sursa (job #433954) | Cod sursa (job #632125) | Cod sursa (job #903854) | Cod sursa (job #1916013)
#include <fstream>
#include <vector>
#include <iostream>
#include <queue>
#define inf 0x3f3f3f3f
#define NM 250005
using namespace std;
ifstream f("pscnv.in");
ofstream g("pscnv.out");
vector < pair < int, int > > graf[NM];
int n, m, x, y, sol[NM], viz[NM];
queue < int > q;
void BellmanFord(int start)
{
int nod, nod2, c;
for(int i = 1; i <= n; ++i) sol[i] = inf;
sol[start] = 0;
q.push(start);
while(!q.empty())
{
nod = q.front();
viz[nod] = 0;
q.pop();
for(int i = 0; i < graf[nod].size(); ++i)
{
nod2 = graf[nod][i].first;
c = graf[nod][i].second;
if(max(sol[nod], c) < sol[nod2])
{
sol[nod2] = max(sol[nod], c);
if(!viz[nod2])
{
viz[nod2] = 1;
q.push(nod2);
}
}
}
}
}
int main()
{
int a, b, c;
f >> n >> m >> x >> y;
for(int i = 1; i <= m; ++i)
{
f >> a >> b >> c;
graf[a].push_back(make_pair(b, c));
}
BellmanFord(x);
g << sol[y] << '\n';
}