Cod sursa(job #2465652)

Utilizator mionelIon. M mionel Data 30 septembrie 2019 18:02:25
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector < pair <int, int> > L[30001];
queue <int> c;
int n, x, y, m,Viz[30001],D[30001];
 void Citire()
 { int i,j,o,d;
 f>>n>>m>>x>>y;
     for(o=1;o<=m;o++)
     { f>>i>>j>>d;
         L[i].push_back(make_pair(j,d));
         L[j].push_back(make_pair(i,d));
     }
 }
/* void DFS(int nod)
{ Viz[nod]=1;
int vec,o,dist;
 for(o=0;o<L[nod].size();o++)
 { vec=L[nod][o].first;
   dist=L[nod][o].second;
   if(Viz[vec]==0)
   { if(nod<vec)
       total=total+dist;
       else total=total-dist;
      DFS(vec);
      break;
   }
 }
} */
 void BFS()
  { int i, vec, nod,dist;
    Viz[x]=1;
     c.push(x);
     while(!c.empty())
     { nod=c.front(); c.pop();
         for(i=0;i<L[nod].size();i++)
         { vec=L[nod][i].first;
           dist=L[nod][i].second;
           if(Viz[vec]==0)
           { if(nod<vec)
               D[vec]=D[nod]+dist;
               else D[vec]=D[nod]-dist;
             c.push(vec);
             Viz[vec]=1;
           }
         }
     }
  }
int main()
{
 Citire();

 BFS();
g<<D[y];
f.close();
    return 0;
}