Cod sursa(job #2472598)

Utilizator tavi255Varzaru Octavian Stefan tavi255 Data 12 octombrie 2019 16:54:50
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
//#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int Max=30005;
bool viz[Max];
int dist[Max],n,m,x,y;
vector <pair <int,int> >v[Max];
queue <int>q;
ifstream in("sate.in");
ofstream out("sate.out");
void citire()
{
    in>>n>>m>>x>>y;
    for(int i=1;i<=m;i++)
    {
        int h,k,q; in>>h>>k>>q;
        v[h].push_back({k,q});
        v[k].push_back({h,q});

    }
}
void bfs(int nod)
{
   q.push(nod); viz[nod]=1;
   while(!q.empty())
   {
      int nod=q.front(); q.pop();
      for(int j=0;j<v[nod].size();j++)
      {
          int vecin=v[nod][j].first;
          int cost=v[nod][j].second;
          if(!viz[vecin])
          {
              viz[vecin]=1; q.push(vecin);
              if(vecin>nod)
                dist[vecin]=dist[nod]+cost;
              else
                dist[vecin]=dist[nod]-cost;
          }
      }
   }
}
int main()
{
   citire();
   bfs(x);
   out<<dist[y];
    return 0;
}