Cod sursa(job #1804645)

Utilizator MickeyTurcu Gabriel Mickey Data 12 noiembrie 2016 20:48:19
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include<fstream>
#include<string.h>
#include<ctype.h>
#include<iostream>
#include<algorithm>
#include<map>
#include<unordered_map>
#include<array>
#include<deque>
#include<math.h>
#include<functional>
#include<unordered_set>
#include<set>
#include<iomanip>
#include<bitset>
using namespace std;
int n, m, q, i, j, k, ok, nr, x, y, c, viz[30100], mcost[30100], rez,ex,ey;
vector<pair<int, int>>vec[100100];
deque<int>que;
void bfs(int x, int y)
{
	que.push_back(x);
	while (que.size() != 0)
	{
		int el = *que.begin();
		que.pop_front();
		viz[el] = 1;
		for (auto it = vec[el].begin(); it != vec[el].end(); it++)
			if (viz[it->first] == 0)
			{
				que.push_back(it->first);
				mcost[it->first] = mcost[el]+ it->second;
				if (it->first == y)
				{
					rez = mcost[it->first];
					return;
				}
			}
	}
}
int main()
{
	//ifstream f("file.in");
	//ofstream g("file.out");
	ifstream f("sate.in");
	ofstream g("sate.out");
	f >> n >> m >> ex>> ey;
	for (i = 1; i <= m; i++)
	{
		f >> x >> y >> c;
		vec[x].push_back(make_pair(y, c));
		vec[y].push_back(make_pair(x, -c));
	}
	bfs(ex, ey);
	g << rez;
	return 0;
}