Pagini recente » Cod sursa (job #701575) | Cod sursa (job #1625038) | Cod sursa (job #2725871) | Cod sursa (job #753633) | Cod sursa (job #1148084)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
fstream f("sate.in", ios::in);
ofstream g("sate.out");
struct per{
int nod, dist;
};
int main()
{
int n,m,x,y;
f >> n >> m >> x >> y;
vector <per> a[30011];
int i, j, d;
for (int k{ 0 }; k < m; k++)
{
f >> i >> j >> d;
per aux{ j, d };
a[i].push_back(aux);
aux.nod = i;
aux.dist = -d;
a[j].push_back(aux);
}
int *dist = new int[n + 1];
for (int i{ 0 }; i <= n; i++)
dist[i] = 0;
queue <int> q;
q.push(x);
while (!q.empty())
{
int varf = q.front();
if (varf == y)
{
g << dist[y];
break;
}
q.pop();
for (int i{ 0 }; i < a[varf].size(); i++)
{
if ( !dist[a[varf][i].nod])
{
dist[a[varf][i].nod] = dist[varf] + a[varf][i].dist;
q.push(a[varf][i].nod);
}
}
}
return 0;
}