Pagini recente » Cod sursa (job #1501802) | Cod sursa (job #2771876) | Cod sursa (job #2812929) | Cod sursa (job #1931719) | Cod sursa (job #1700734)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
const int mod = 45001;
int n, m, i, j, X, Y, x, y, c;
vector <int> ls[30005], lc[30005];
int d[30005], st, dr, coada[mod];
bool viz[30005];
int main()
{
f >> n >> m >> X >> Y;
for (i = 1; i <= m; i++)
{
f >> x >> y >> c;
ls[x].push_back(y);
lc[x].push_back(c);
ls[y].push_back(x);
lc[y].push_back(c);
}
coada[0] = X;
while (st <= dr)
{
x = coada[st%mod];
st++;
for (i = 0; i < ls[x].size(); i++)
{
y = ls[x][i];
if (viz[y] == 0)
{
viz[y] = 1;
if (y > x)
d[y] = d[x] + lc[x][i];
else
d[y] = d[x] - lc[x][i];
if (y == Y)
{
g << d[y];
return 0;
}
dr++;
coada[dr%mod] = y;
}
}
}
return 0;
}