Pagini recente »
Diferențe pentru runda/adunare între reviziile 11 și 10
|
Istoria paginii utilizator/tomi
|
Monitorul de evaluare
|
Rating Maria Ioana Cucui (mcucui2013)
|
Cod sursă (job #431368)
Cod sursă (job
#431368)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("evacuare.in");
ofstream cout ("evacuare.out");
// ez pz dinamica pe graf
int n, m, x, a, b;
int dp[500005], p[500005];
vector <int> g[500005];
void dfs(int nod) {
for(auto i : g[nod]) {
int c = dp[nod] + (p[nod] != i);
if(dp[i] > c) {
dp[i] = c;
dfs(i);
}
}
}
int main() {
cin >> n >> m >> x;
for(; m; m--) {
cin >> a >> b;
g[a].push_back(b);
g[b].push_back(a);
}
for(int i = 1; i <= n; i++) {
cin >> p[i];
dp[i] = 1e9;
}
dp[x] = 1;
dfs(x);
for(int i = 1; i <= n; i++)
cout << dp[i] - 1 << "\n";
return 0;
}