Pagini recente » Cod sursa (job #703736) | Cod sursa (job #1067684)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int NMAX = 30001;
const int MMAX = 100025;
int n,m, start, finish, total = 0;
bool viz[NMAX];
struct det{
int nr, dist;
};
vector<det> sate[NMAX];
void get_input(){
ifstream in("sate.in");
in>>n>>m>>start>>finish;
cout<<start<<" "<<finish;
for (int i = 0; i < m; ++i){
int x,y,d;
in>>x>>y>>d;
det per;
per.nr = y;
per.dist = d;
sate[x].push_back(per);
per.nr = x;
per.dist = -d;
sate[y].push_back(per);
}
in.close();
}
void dfs(int nod){
viz[nod]=true;
if (nod==finish) return;
for (int i = 0; i<sate[nod].size();++i)
if (viz[sate[nod][i].nr]==false){
total +=sate[nod][i].dist;
dfs(sate[nod][i].nr);
}
}
int main(){
get_input();
dfs(start);
ofstream out("sate.out");
out<<total;
out.close();
return 0;
}