Pagini recente » Cod sursa (job #557776) | Cod sursa (job #2289348) | Cod sursa (job #333062) | Cod sursa (job #1757675) | Cod sursa (job #2981104)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define nmx 100025
using namespace std;
int n,m,a,b,x,y,pr,dist[nmx];
struct edge
{
int nex;
int price;
};
vector <edge> neighbours[nmx];
void dfs (int source)
{
int sz=neighbours[source].size();
for (int i=0; i<sz; i++)
{
if (dist[neighbours[source][i].nex]==0)
{
if (neighbours[source][i].nex<source)
dist[neighbours[source][i].nex]=dist[source]-neighbours[source][i].price;
else
dist[neighbours[source][i].nex]=dist[source]+neighbours[source][i].price;
dfs(neighbours[source][i].nex);
}
}
}
int main()
{
ifstream f ("sate.in");
ofstream g ("sate.out");
f>>n>>m>>x>>y;
for (int i=1; i<=m; i++)
{
f>>a>>b>>pr;
neighbours[a].push_back({b,pr});
neighbours[b].push_back({a,pr});
}
dist[x]=1;
dfs(x);
g<<dist[y]-1;
}