Pagini recente » Cod sursa (job #381249) | Cod sursa (job #1609039) | Cod sursa (job #1199446) | Cod sursa (job #2114639) | Cod sursa (job #2665144)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
struct muchie
{
int nodTerminal, valoare;
};
vector <muchie> a[30005];
int n, m, x, y;
int l, c, cost;
void citire()
{
fin >> n >> m >> x >> y;
for (int i = 1; i <= m; i++)
{
fin >> l >> c >> cost;
muchie m1;
m1.nodTerminal = c;
m1.valoare = cost;
a[l].push_back(m1);
muchie m2;
m2.nodTerminal = l;
m2.valoare = cost;
a[c].push_back(m2);
}
}
bool vizitat[30005];
int parcurgere(int start, int finall, int distanta)
{
vizitat[start] = true;
if (start == finall) return distanta;
for (int i = 0; i < a[start].size(); i++)
{
if (vizitat[a[start][i].nodTerminal] == false)
{
vizitat[a[start][i].nodTerminal] = true;
if (a[start][i].nodTerminal > start)
return parcurgere(a[start][i].nodTerminal, finall, distanta+a[start][i].valoare);
else return parcurgere(a[start][i].nodTerminal, finall, distanta-a[start][i].valoare);
}
}
}
int main()
{
citire();
/**for (int i = 1; i <= n; i++)
{
cout << i <<": ";
for (int j = 0; j < a[i].size(); j++)
cout <<a[i][j].nodTerminal <<" ";
cout << endl;
}*/
fout << parcurgere(x, y, 0);
}