Cod sursa(job #3247206)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 6 octombrie 2024 12:31:45
Problema Sate Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include <vector>
#include <queue>
#define DIM 30001

using namespace std;

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

struct muchie
{
    int vop;
    int cost;
};
vector<muchie>L[DIM];
queue<int>Q;
int d[DIM];
bool viz[DIM];
int n,m,x,y,a,b,c;
void bfs(int x)
{
    Q.push(x);
    viz[x]=1;
    while(!d[y])
    {
        x=Q.front();
        Q.pop();
        for(int i=0;i<L[x].size();i++)
        {
            int y=L[x][i].vop, cost=L[x][i].cost;
            if(!viz[y])
            {
                if(y>x)
                    d[y]=d[x]+cost;
                else
                    d[y]=d[x]-cost;
                viz[y];
                Q.push(y);
            }
        }
    }
}
int main()
{
    fin>>n>>m>>x>>y;
    for(int i=1;i<=m;i++)
    {
        fin>>a>>b>>c;
        L[a].push_back({b,c});
        L[b].push_back({a,c});
    }
    bfs(x);
    fout<<d[y];
    return 0;
}