Pagini recente » Cod sursa (job #2365318) | Cod sursa (job #1112504) | Cod sursa (job #1338777) | Cod sursa (job #1201286) | Cod sursa (job #2305817)
#include <iostream>
#include <fstream>
#define nmax 30001
#include <queue>
#include <vector>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int d[nmax];
int n, m;
int x, y;
bool viz[nmax];
vector < pair < int,int > > muchii[nmax];
void citeste()
{
fin >> n >> m >> x >> y;
for (int i = 1; i<= m; i++)
{
int a, b, c;
fin >> a >> b >> c;
muchii[a].push_back(make_pair(b,c));
muchii[b].push_back(make_pair(a,-c));
}
}
int bfs(int nodstart,int nodfinal)
{
int nod = nodstart;
viz[nod] = true;
int s = 0;
while (nod!=nodfinal)
{
for (unsigned int i = 0;i < muchii[nod].size(); i++)
{
int vecin = muchii[nod][i].first;
int dist = muchii[nod][i].second;
if (!viz[vecin])
{
s += dist;
viz[vecin] = true;
nod = vecin;
}
}
}
return s;
}
int main()
{
citeste();
fout << bfs(x,y);
return 0;
}