Pagini recente » Profil Laviniut | Cod sursa (job #461471) | Cod sursa (job #1772285) | Cod sursa (job #1435844) | Cod sursa (job #1277449)
#include <fstream>
#include <queue>
#include <vector>
#define nod first
#define cost second
using namespace std;
ifstream fin ("pscnv.in");
ofstream fout ("pscnv.out");
int N, M, X, Y, D[1010];
vector < pair < int, int > > V[250010];
queue < int > Q;
bool fr[1010];
int main()
{
fin >> N >> M >> X >> Y;
int x, y, c;
for (int i=1; i<=M; i++)
{
fin >> x >> y >> c;
V[x].push_back(make_pair(y, c));
}
for (int i=1; i<=1000; i++) D[i] = 1111;
Q.push(X);
D[X] = 0;
while (!Q.empty())
{
int i = Q.front();
Q.pop();
vector < pair < int, int > > :: iterator it;
if (!fr[i])
{
for (it = V[i].begin(); it != V[i].end(); it++)
{
D[it->nod] = min(D[it->nod], max(it->cost, D[i]));
Q.push(D[it->nod]);
}
}
fr[i] = 1;
}
fout << D[Y] << '\n';
fout.close();
return 0;
}