Cod sursa(job #1180147)

Utilizator Aavatar36Russu Vadim Aavatar36 Data 30 aprilie 2014 00:01:56
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <vector>
#include <queue>
#include <fstream>
#include <utility>
#include <iostream>
#define NMAX 30004
using namespace std;

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

vector<pair<int, int> >v[NMAX];
queue<int>coada;
bool p[NMAX];
int n, m, x, y;

int main() {

	fin >> n >> m >> x >> y;
	int a, b, d;
	for (int i = 1; i <= m; ++i) {
		fin >> a >> b >> d;
		v[a].push_back(make_pair(b, d));
		v[b].push_back(make_pair(a, d));
	}
	coada.push(x);
	p[x]=1;
	int nod, rs = 0;
	while (!coada.empty()) {
		nod = coada.front();
		if (nod == y) {
			break;
		}
	   //	cout << nod << "\n";
		for (int i = 0; i < v[nod].size(); ++i) {
			if (!p[v[nod][i].first]) {
				if (v[nod][i].first > nod) {
					rs += v[nod][i].second;
				}
				else {
					rs -= v[nod][i].second;
				}
				p[v[nod][i].first] = 1;
				coada.push(v[nod][i].first);
	
			}
		}
	   coada.pop();
	}
		fout << rs;
	return 0;
}