Cod sursa(job #1480679)

Utilizator greenadexIulia Harasim greenadex Data 3 septembrie 2015 00:01:13
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
#define pb push_back
#define f first
#define s second
#define pii pair<int, int>
#define mp make_pair

using namespace std;

const string name = "sate",
             in_file = name + ".in",
             out_file = name + ".out";

ifstream fin(in_file);
ofstream fout(out_file);

const int MAX = 3e4 + 5;

vector <pii> gr[MAX];
int n, m, s, d, dist[MAX];
deque <int> q;
bool viz[MAX];

void bfs(int source) {
	viz[source] = true;
	q.pb(source);

	while (!q.empty()) {
		int node = q.front();
		q.pop_front();

		for (auto it : gr[node])
			if (!viz[it.f]) {
				viz[it.f] = true;
				dist[it.f] = dist[node] + it.s;
				q.pb(it.f);
			}
	}
}

int main() {
	fin >> n >> m >> s >> d;
	for (int a, b, c; m; m--) {
		fin >> a >> b >> c;
		gr[a].pb(mp(b, c));
		gr[b].pb(mp(a, -c));
	}

	bfs(s);

	fout << dist[d];

	return 0;
}