Cod sursa(job #3247207)

Utilizator AlexandraVarutuValexandra AlexandraVarutu Data 6 octombrie 2024 12:32:52
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <vector>
#include<queue>
#define DIM 30001
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,s,f,x,y,c;
struct muchie{
    int x,c;
};
vector<muchie>v[DIM];
int d[DIM];
bool viz[DIM];
queue<int>q;
int main()
{
    fin>>n>>m>>s>>f;
    for(int i=1;i<=m;i++){
       fin>>x>>y>>c;
       v[x].push_back({y,c});
       v[y].push_back({x,c});
    }
    q.push(s);
    viz[s]=1;
    while(d[f]==0){
        int x=q.front();
        q.pop();
        for(int i=0;i<v[x].size();i++){
              int y=v[x][i].x;
              int cost=v[x][i].c;
              if(viz[y]==0){
                  if(y>x)
                       d[y]=d[x]+cost;
                  else
                       d[y]=d[x]-cost;
                  viz[y]=1;
                  q.push(y);
              }
        }

    }
    fout<<d[f];

        return 0;
}