Pagini recente » Cod sursa (job #970271) | Statistici Balan Alexandru (Balan_Alexandru_322CC) | Cod sursa (job #2027869) | Cod sursa (job #1333948) | Cod sursa (job #2845856)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int q[30001];
int viz[30001];
struct nod {
int vecin;
int dist;
};
vector<nod> v[30001];
int distanta[30001];
int main() {
int n, m,x, y;
fin >> n >> m >> x >> y;
int a, b, c;
for(int i=1;i<=m;i++) {
fin >> a >> b >> c;
v[a].push_back({b, c});
v[b].push_back({a, c});
}
int p = 1, r = 1;
q[p] = x;
viz[x] = 1;
while(p <= r && viz[y] == 0) {
int k = q[p];
p++;
for(int i=0;i<v[k].size();i++) {
int nod = v[k][i].vecin;
int d = v[k][i].dist;
if(viz[nod] == 0) {
if(nod > k)
distanta[nod] = distanta[k] + d;
else
distanta[nod] = distanta[k] - d;
viz[nod] = 1;
q[++r] = nod;
}
}
}
fout << distanta[y];
return 0;
}