Pagini recente » Cod sursa (job #709660) | Cod sursa (job #2607813) | Cod sursa (job #2778884) | Cod sursa (job #193504) | Cod sursa (job #2402299)
#include <fstream>
#include <vector>
#include <queue>
#include <climits>
using namespace std;
#define INF INT_MAX
ifstream f("pscnv.in");
ofstream g("pscnv.out");
int n, m, x, y, dp[250001];
struct muchie{
int nod, pond;
};
vector<muchie> a[250001];
queue<int> Q;
void parcurgere(int nod) {
Q.pop();
if (nod - y)
for (int i = 0; i < a[nod].size(); ++i) {
muchie v = a[nod][i];
if (dp[nod] < dp[v.nod] && v.pond < dp[v.nod] && v.pond < dp[y]) {
dp[v.nod] = max(v.pond, dp[nod]);
Q.push(v.nod);
}
}
}
int main()
{
f >> n >> m >> x >> y;
int d, b, c;
for (int i = 1; i <= m; ++i) {
f >> d >> b >> c;
muchie l;
l.nod = b;
l.pond = c;
a[d].push_back(l);
}
for (int i = 1; i <= n; ++i) dp[i] = INF;
dp[x] = 0;
Q.push(x);
while (!Q.empty()) parcurgere(Q.front());
g << dp[y] << '\n';
return 0;
}