Pagini recente » Cod sursa (job #2456303) | Cod sursa (job #190773) | Cod sursa (job #2227846) | Cod sursa (job #742879) | Cod sursa (job #2438087)
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector < pair <int, int > > graf[30001];
int D, dis, x, y, Nods, Arcs, Origin, End, i;
bool ok, viz[30001];
void dfs(int node){
viz[node] = 1;
for(int i = 0; i < graf[node].size(); i++){
if(ok == 1)
return;
if(viz[graf[node][i].first] == 0){
D = D + graf[node][i].second;
if(graf[node][i].first == End){
g << D;
ok = 1;
}
dfs(graf[node][i].first);
D = D - graf[node][i].second;
}
}
}
int main()
{ f >> Nods >> Arcs >> Origin >> End;
for(i = 1; i <= Arcs; i++){
f >> x >> y >> dis;
if(x > y)
swap(x, y);
graf[x].push_back({y, dis});
graf[y].push_back({x, -dis});
}
dfs(Origin);
return 0;
}