Cod sursa(job #3150879)

Utilizator antonio_sefu_tauLaslau Antonio antonio_sefu_tau Data 18 septembrie 2023 20:55:29
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
const int dim=3e4+5;
int n,m,X,Y,d[dim];
bool viz[dim];
vector<pair<int,int> > G[dim];
void BFS(int nod){
    viz[nod]=1;
    queue<int> Q;
    Q.push(nod);
    while(!Q.empty()){
        int x=Q.front();
        Q.pop();
        for(int i=0;i<G[x].size();i++){
            int u=G[x][i].first;
            int cost=G[x][i].second;
            if(!viz[u]){
                viz[u]=1;
                d[u]=d[x]+cost;
                Q.push(u);
            }
        }
    }
}
int main(){
    ifstream f("sate.in");
    ofstream g("sate.out");
    f>>n>>m>>X>>Y;
    for(int i=1;i<=m;i++){
        int x,y,c;
        f>>x>>y>>c;
        G[x].push_back({y,c});
        G[y].push_back({x,-c});
    }
    BFS(X);
    g<<d[Y];
    return 0;
}