Pagini recente » Cod sursa (job #1169826) | Cod sursa (job #2601941) | Cod sursa (job #615147) | Cod sursa (job #1513528) | Cod sursa (job #2298266)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
struct drumuri
{
int vecin, cost;
};
const int NMAX = 30001;
int n, m, a, b, rez = 0;
bool vizitat[NMAX];
vector <drumuri> Muchii[NMAX];
void bfs(int nod)
{
if (nod == b)
out << rez;
else
{
vizitat[nod] = 1;
for (int i = 0; i < Muchii[nod].size(); ++i)
{
if (vizitat[Muchii[nod][i].vecin] == 0)
{
rez += Muchii[nod][i].cost;
bfs(Muchii[nod][i].vecin);
rez -= Muchii[nod][i].cost;
}
}
}
}
void citire()
{
int x, y, d;
in >> n >> m >> a >> b;
for (int i = 1; i <= m; ++i)
{
in >> x >> y >> d;
drumuri dr = {y, d};
drumuri dr2 = {x, -d};
Muchii[x].push_back(dr);
Muchii[y].push_back(dr2);
}
bfs(a);
}
int main()
{
citire();
return 0;
}