Pagini recente » Cod sursa (job #1557407) | Cod sursa (job #2800184) | Cod sursa (job #1363797) | Cod sursa (job #2704982) | Cod sursa (job #1148025)
#include <fstream>
#include <queue>
using namespace std;
fstream f("sate.in", ios::in);
ofstream g("sate.out");
int main()
{
int n,m,x,y;
f >> n >> m >> x >> y;
int **a = new int*[n + 1];
for (int i{ 1 }; i <= n; i++)
a[i] = new int[n + 1];
for (int i{ 1 }; i <= n; i++)
{
for (int j{ 1 }; j <= n; j++)
a[i][j] = 0;
}
int i, j, d;
for (int k{ 0 }; k < m; k++)
{
f >> i >> j >> d;
a[i][j] = d;
a[j][i] = -d;
}
int *dist = new int[n + 1];
for (int i{ 1 }; i <= n; i++)
dist[i] = 0;
queue <int> q;
q.push(x);
while (!q.empty())
{
int varf = q.back();
if (varf == y)
{
g << dist[y];
break;
}
q.pop();
for (int i{ 1 }; i <= n; i++)
{
if (a[varf][i] && !dist[i])
{
dist[i] = dist[varf] + a[varf][i];
q.push(i);
}
}
}
return 0;
}