Cod sursa(job #2854935)

Utilizator un_fes_galbendaniel guba un_fes_galben Data 21 februarie 2022 21:01:29
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
vector<int>G[30005];
vector<int>cost[30005];
int dist[30005];
queue<int>q;
void BFS(){
    while(!q.empty()){
        int nod=q.front();q.pop();
        for(int i=0;i<G[nod].size();i++){
            if(dist[G[nod][i]]==0){
                dist[G[nod][i]]=dist[nod]+cost[nod][i];
                q.push(G[nod][i]);
            }
        }
    }
}
int main()
{
    ifstream fin("sate.in");
    ofstream fout("sate.out");
    int n,m,x,y,a,b,d;fin>>n>>m>>x>>y;
    for(int i=1;i<=m;i++){
        fin>>a>>b>>d;
        G[a].push_back(b);cost[a].push_back(d);
        G[b].push_back(a);cost[b].push_back(-d);
    }
    dist[x]=1;q.push(x);BFS();fout<<dist[y]-1<<'\n';
    return 0;
}