import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Queue;
public class birmingham {
static InputStream is;
static PrintWriter out;
static String INPUT = "";
static void solve() {
int n = ni(), m = ni(), Q = ni(), K = ni();
int[] ds = new int[n];
Arrays.fill(ds, Integer.MAX_VALUE / 2);
Queue<Integer> q = new ArrayDeque<>();
for(int i = 0;i < Q;i++){
int x = ni()-1;
q.add(x);
ds[x] = 0;
}
int[] from = new int[m];
int[] to = new int[m];
for(int i = 0;i < m;i++){
from[i] = ni()-1;
to[i] = ni()-1;
}
int[][] g = packU(n, from, to);
while(!q.isEmpty()){
int cur = q.poll();
for(int e : g[cur]){
if(ds[e] > ds[cur] + 1){
ds[e] = ds[cur] + 1;
q.add(e);
}
}
}
int[] dd = new int[100005];
int s = 0;
for(int i = 1;s < dd.length;i++){
for(int t = s+1;t <= s+i*K && t < dd.length;t++){
dd[t] = i;
}
s += i*K;
}
for(int v : ds){
out.print(dd[v] + " ");
}
out.println();
}
static int[][] packU(int n, int[] from, int[] to) {
int[][] g = new int[n][];
int[] p = new int[n];
for (int f : from)
p[f]++;
for (int t : to)
p[t]++;
for (int i = 0; i < n; i++)
g[i] = new int[p[i]];
for (int i = 0; i < from.length; i++) {
g[from[i]][--p[from[i]]] = to[i];
g[to[i]][--p[to[i]]] = from[i];
}
return g;
}
public static void main(String[] args) throws Exception {
long S = System.currentTimeMillis();
is = INPUT.isEmpty() ? System.in : new ByteArrayInputStream(INPUT.getBytes());
out = new PrintWriter(System.out);
solve();
out.flush();
long G = System.currentTimeMillis();
tr(G - S + "ms");
}
private static boolean eof() {
if (lenbuf == -1)
return true;
int lptr = ptrbuf;
while (lptr < lenbuf)
if (!isSpaceChar(inbuf[lptr++]))
return false;
try {
is.mark(1000);
while (true) {
int b = is.read();
if (b == -1) {
is.reset();
return true;
} else if (!isSpaceChar(b)) {
is.reset();
return false;
}
}
} catch (IOException e) {
return true;
}
}
private static byte[] inbuf = new byte[1024];
public static int lenbuf = 0, ptrbuf = 0;
private static int readByte() {
if (lenbuf == -1)
throw new InputMismatchException();
if (ptrbuf >= lenbuf) {
ptrbuf = 0;
try {
lenbuf = is.read(inbuf);
} catch (IOException e) {
throw new InputMismatchException();
}
if (lenbuf <= 0)
return -1;
}
return inbuf[ptrbuf++];
}
private static boolean isSpaceChar(int c) {
return !(c >= 33 && c <= 126);
}
private static int skip() {
int b;
while ((b = readByte()) != -1 && isSpaceChar(b))
;
return b;
}
private static double nd() {
return Double.parseDouble(ns());
}
private static char nc() {
return (char) skip();
}
private static String ns() {
int b = skip();
StringBuilder sb = new StringBuilder();
while (!(isSpaceChar(b))) { // when nextLine, (isSpaceChar(b) && b != '
// ')
sb.appendCodePoint(b);
b = readByte();
}
return sb.toString();
}
private static char[] ns(int n) {
char[] buf = new char[n];
int b = skip(), p = 0;
while (p < n && !(isSpaceChar(b))) {
buf[p++] = (char) b;
b = readByte();
}
return n == p ? buf : Arrays.copyOf(buf, p);
}
private static char[][] nm(int n, int m) {
char[][] map = new char[n][];
for (int i = 0; i < n; i++)
map[i] = ns(m);
return map;
}
private static int[] na(int n) {
int[] a = new int[n];
for (int i = 0; i < n; i++)
a[i] = ni();
return a;
}
private static int ni() {
int num = 0, b;
boolean minus = false;
while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'))
;
if (b == '-') {
minus = true;
b = readByte();
}
while (true) {
if (b >= '0' && b <= '9') {
num = num * 10 + (b - '0');
} else {
return minus ? -num : num;
}
b = readByte();
}
}
private static long nl() {
long num = 0;
int b;
boolean minus = false;
while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'))
;
if (b == '-') {
minus = true;
b = readByte();
}
while (true) {
if (b >= '0' && b <= '9') {
num = num * 10 + (b - '0');
} else {
return minus ? -num : num;
}
b = readByte();
}
}
private static void tr(Object... o) {
if (INPUT.length() != 0)
System.out.println(Arrays.deepToString(o));
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
90 ms |
11132 KB |
Output is correct |
2 |
Correct |
88 ms |
11252 KB |
Output is correct |
3 |
Correct |
87 ms |
11100 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
87 ms |
11248 KB |
Output is correct |
2 |
Correct |
86 ms |
11380 KB |
Output is correct |
3 |
Correct |
86 ms |
11004 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
83 ms |
11020 KB |
Output is correct |
2 |
Correct |
83 ms |
10864 KB |
Output is correct |
3 |
Correct |
90 ms |
11088 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
85 ms |
11196 KB |
Output is correct |
2 |
Correct |
84 ms |
10996 KB |
Output is correct |
3 |
Correct |
84 ms |
11244 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
91 ms |
11052 KB |
Output is correct |
2 |
Correct |
84 ms |
11152 KB |
Output is correct |
3 |
Correct |
86 ms |
11388 KB |
Output is correct |
4 |
Correct |
98 ms |
11148 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
85 ms |
11096 KB |
Output is correct |
2 |
Correct |
84 ms |
11012 KB |
Output is correct |
3 |
Correct |
87 ms |
11128 KB |
Output is correct |
4 |
Correct |
84 ms |
11120 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
82 ms |
11236 KB |
Output is correct |
2 |
Correct |
95 ms |
10888 KB |
Output is correct |
3 |
Correct |
86 ms |
10968 KB |
Output is correct |
4 |
Correct |
88 ms |
11112 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
377 ms |
33812 KB |
Output is correct |
2 |
Correct |
434 ms |
35768 KB |
Output is correct |
3 |
Correct |
356 ms |
36036 KB |
Output is correct |
4 |
Correct |
374 ms |
35228 KB |
Output is correct |
5 |
Correct |
384 ms |
36036 KB |
Output is correct |
6 |
Correct |
385 ms |
36756 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
392 ms |
41636 KB |
Output is correct |
2 |
Correct |
380 ms |
34732 KB |
Output is correct |
3 |
Correct |
388 ms |
35188 KB |
Output is correct |
4 |
Correct |
374 ms |
37608 KB |
Output is correct |
5 |
Correct |
370 ms |
37916 KB |
Output is correct |
6 |
Correct |
364 ms |
33356 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
382 ms |
38020 KB |
Output is correct |
2 |
Correct |
363 ms |
36116 KB |
Output is correct |
3 |
Correct |
398 ms |
37048 KB |
Output is correct |
4 |
Correct |
377 ms |
36224 KB |
Output is correct |
5 |
Correct |
383 ms |
34532 KB |
Output is correct |
6 |
Correct |
370 ms |
35284 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
393 ms |
32624 KB |
Output is correct |
2 |
Correct |
381 ms |
34908 KB |
Output is correct |
3 |
Correct |
421 ms |
37992 KB |
Output is correct |
4 |
Correct |
416 ms |
37588 KB |
Output is correct |
5 |
Correct |
374 ms |
36816 KB |
Output is correct |
6 |
Correct |
424 ms |
35756 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
415 ms |
35844 KB |
Output is correct |
2 |
Correct |
389 ms |
34112 KB |
Output is correct |
3 |
Correct |
383 ms |
35044 KB |
Output is correct |
4 |
Correct |
399 ms |
35128 KB |
Output is correct |
5 |
Correct |
396 ms |
34600 KB |
Output is correct |
6 |
Correct |
363 ms |
36012 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
426 ms |
36476 KB |
Output is correct |
2 |
Correct |
346 ms |
37184 KB |
Output is correct |
3 |
Correct |
403 ms |
32900 KB |
Output is correct |
4 |
Correct |
403 ms |
35304 KB |
Output is correct |
5 |
Correct |
377 ms |
34024 KB |
Output is correct |
6 |
Correct |
389 ms |
36784 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
374 ms |
33672 KB |
Output is correct |
2 |
Correct |
374 ms |
34260 KB |
Output is correct |
3 |
Correct |
352 ms |
35244 KB |
Output is correct |
4 |
Correct |
411 ms |
36124 KB |
Output is correct |
5 |
Correct |
344 ms |
35960 KB |
Output is correct |
6 |
Correct |
384 ms |
37312 KB |
Output is correct |