Cod sursa(job #2402299)

Utilizator eduardcadarCadar Eduard eduardcadar Data 10 aprilie 2019 16:24:36
Problema PScNv Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#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;
}