Pagini recente » Cod sursa (job #1313970) | Cod sursa (job #1580880) | Cod sursa (job #273070) | Cod sursa (job #2699187) | Cod sursa (job #1701703)
#include <iostream>
#include <fstream>
#include <list>
#include <unordered_map>
using namespace std;
typedef pair<short,int> paer;
short x, y;
int sol;
unordered_map<short,list<paer>> vecini;
unordered_map<short,int> distante;
void df(short sat) {
if (sat == y) {
sol = distante[sat];
}
list<paer>::iterator it;
for (it = vecini[sat].begin(); it != vecini[sat].end(); it++) {
paer p = *it;
if (!distante[p.first]) {
if (sat > p.first) {
distante[p.first] = distante[sat] - p.second;
}
else {
distante[p.first] = distante[sat] + p.second;
}
if (p.first != x) {
df(p.first);
}
}
}
}
int main()
{
ifstream in("sate.in");
ofstream out("sate.out");
short n, a, b;
int d, i, m;
in>>n>>m>>x>>y;
for (i=0; i<m; i++) {
in>>a>>b>>d;
vecini[a].push_back(paer(b,d));
vecini[b].push_back(paer(a,d));
}
df(x);
out<<sol;
in.close();
out.close();
return 0;
}