Pagini recente » Cod sursa (job #571465) | Cod sursa (job #325041) | Cod sursa (job #1743684) | Cod sursa (job #1610980) | Cod sursa (job #1692077)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x,y,graf[30000][30000];
bool vizitat[30000] = {false};
int solutie[30000] = {0};
void read() {
f >> n >> m >> x >> y;
int a,b,c;
for(int i = 1; i <= m; i++) {
f >> a >> b >> c;
graf[a][b] = c;
graf[b][a] = c;
}
}
int c[30000],u;
void BF(int x)
{
int i,p,v,ii=1,jj=1;
c[1]=x;
vizitat[x]=true;
p=u=1;
while(p<=u)
{
v=c[p];
p++;
jj=1;
for(i=1;i<=n;i++)
if(graf[v][i] != 0 && vizitat[i]==false)
{
u++;
c[u]=i;
vizitat[i]=true;
if(v < i) {
solutie[i] = solutie[v] + graf[v][i];
}
if(v > i) {
solutie[i] = solutie[v] - graf[v][i];
}
}
}
}
int main(int argc, char const *argv[]) {
read();
BF(x);
g << solutie[y];
return 0;
}