Pagini recente » Cod sursa (job #2293994) | Cod sursa (job #380867) | Cod sursa (job #1090652) | Cod sursa (job #1421285) | Cod sursa (job #1733657)
#include <bits/stdc++.h>
using namespace std;
bool okay (unsigned short int i, unsigned short int j);
int N, M, X, Y, x, y, D;
vector <int> v[30001];
deque <int> q;
bool seen[30001];
int node;
int i;
int u[30001];
int sol[30001];
int main ()
{
ifstream fin ("sate.in");
fin >> N >> M >> X >> Y;
for (i=1; i<=M; i++)
{
fin >> x >> y >> D;
v[x].push_back(y);
v[y].push_back(x);
u[y] = D;
u[x] = D;
}
fin.close();
q.push_back(Y);
seen[Y] = 1;
sol[Y] = u[Y];
while (!q.empty())
{
node = q.front();
q.pop_front();
for (i=0; i<v[node].size(); i++)
if (seen[v[node][i]] == 0)
{
seen[v[node][i]] = 1;
sol[v[node][i]] = sol[node] + 1;
q.push_back(v[node][i]);
}
}
ofstream fout ("sate.out");
for (i=1; i<=N; i++)
if (i == X)
fout << sol[i]-1 << ' ';
fout.close();
return 0;
}
bool okay (unsigned short int i, unsigned short int j)
{
if (i<1 || j<1 || i>N || j>N)
return 0;
return 1;
}