Cod sursa(job #2447137)

Utilizator Iulia25Hosu Iulia Iulia25 Data 12 august 2019 11:48:47
Problema Sate Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

int n, m, x, y, a, b, c, marcat[30005];
vector <int> vecin[30005], cost[30005];
queue <int> q;

int main()  {
  fin >> n >> m >> x >> y;
  for (int i = 1; i <= m; ++i)  {
    fin >> a >> b >> c;
    vecin[a].push_back(b);
    cost[a].push_back(c);
    vecin[b].push_back(a);
    cost[b].push_back(c);
  }
  int nod;
  q.push(x);
  while (!q.empty())  {
    nod = q.front();
    q.pop();
    for (int i = 0; i < vecin[nod].size(); ++i)  {
      b = vecin[nod][i];
      c = cost[nod][i];
      if (marcat[b])
        continue;
      if (b < nod)
        marcat[b] = marcat[nod] - c;
      else marcat[b] = marcat[nod] + c;
      q.push(b);
      if (b == y)  {
        fout << marcat[b];
        return 0;
      }
    }
  }
  return 0;
}