Cod sursa(job #3185169)

Utilizator ciucelizamariaeliza ciuc ciucelizamaria Data 18 decembrie 2023 10:47:53
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>
#define oo 2e9

using namespace std;

ifstream fin("sate.in");
ofstream fout("sate.out");

vector<pair<int, int>> L[100005];
int n, d[100005], X, Y;
queue<int> q;


void Citire()
{
    int m, x, y, cost;
    fin >> n >> m >> X >> Y;
    for(int i = 1; i <= m; i++)
    {
        fin >> x >> y >> cost;
        L[x].push_back({cost, y});
        L[y].push_back({-cost, x});
    }
}

void Bfs(int start, int finish)
{
    int k;
    for(int i = 1; i <= n; i++)
        d[i] = oo;
    d[start] = 0;
    q.push(start);
    while(!q.empty())
    {
        k = q.front();
        q.pop();
        for(auto e : L[k])
            if(d[e.second] > d[k] + e.first)
             {
                  d[e.second] = d[k] + e.first;
                  q.push(e.second);
             }
    }
    fout << d[finish] << "\n";
}

int main()
{
    Citire();
    Bfs(X, Y);
    fin.close();
    fout.close();
    return 0;
}