Submission #648209

# Submission time Handle Problem Language Result Execution time Memory
648209 2022-10-05T17:28:28 Z beaconmc Stranded Far From Home (BOI22_island) PyPy 3
10 / 100
1000 ms 76396 KB
import sys

input = lambda: sys.stdin.readline().strip()

def find(a):
    while cc[a] != a:
        cc[a] = cc[cc[a]]
        a = cc[a]
    return a


def union(a, b):
    aa = find(a)
    bb = find(b)
    if aa==bb: return

    if siz[aa] < sizes[b]:
        for i in stuff[aa]:
            ans[i] = 0
        stuff[aa] = []

    if siz[bb] < sizes[a]:
        for i in stuff[bb]:
            ans[i] = 0
        stuff[bb] = []

    if len(stuff[aa]) > len(stuff[bb]):
        stuff[aa],stuff[bb] = stuff[bb], stuff[aa]
    
    for i in stuff[aa]:
        stuff[bb].append(i)
        
    siz[bb] += siz[aa]

    
    cc[aa] = bb
    
    



n,m = map(int, input().split())
cc = [i for i in range(n)]
sizes = list(map(int, input().split()))

siz = list(sizes)

stuff = [[i]for i in range(n)]
ans = [1 for i in range(n)]

edges = []
for i in range(m):
    a,b = map(int, input().split())
    a-=1;b-=1
    edges.append([max(sizes[a],sizes[b]),min(sizes[a],sizes[b]), a,b])
edges.sort()

for i in edges:
    union(i[2],i[3])
    
for i in ans:
    print(i, end="")
# Verdict Execution time Memory Grader output
1 Correct 34 ms 18212 KB Output is correct
2 Correct 35 ms 18168 KB Output is correct
3 Correct 35 ms 18120 KB Output is correct
4 Correct 116 ms 24856 KB Output is correct
5 Correct 132 ms 24636 KB Output is correct
6 Correct 109 ms 23976 KB Output is correct
7 Correct 110 ms 24916 KB Output is correct
8 Correct 107 ms 24528 KB Output is correct
9 Correct 114 ms 25252 KB Output is correct
10 Correct 113 ms 25252 KB Output is correct
11 Correct 122 ms 25196 KB Output is correct
12 Correct 115 ms 24916 KB Output is correct
13 Correct 112 ms 24792 KB Output is correct
14 Correct 124 ms 25256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 37 ms 18140 KB Output is correct
2 Correct 37 ms 18140 KB Output is correct
3 Execution timed out 1105 ms 75120 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 35 ms 18092 KB Output is correct
2 Execution timed out 1099 ms 76396 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 48 ms 18220 KB Output is correct
2 Execution timed out 1081 ms 73840 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 34 ms 18212 KB Output is correct
2 Correct 35 ms 18168 KB Output is correct
3 Correct 35 ms 18120 KB Output is correct
4 Correct 116 ms 24856 KB Output is correct
5 Correct 132 ms 24636 KB Output is correct
6 Correct 109 ms 23976 KB Output is correct
7 Correct 110 ms 24916 KB Output is correct
8 Correct 107 ms 24528 KB Output is correct
9 Correct 114 ms 25252 KB Output is correct
10 Correct 113 ms 25252 KB Output is correct
11 Correct 122 ms 25196 KB Output is correct
12 Correct 115 ms 24916 KB Output is correct
13 Correct 112 ms 24792 KB Output is correct
14 Correct 124 ms 25256 KB Output is correct
15 Correct 37 ms 18140 KB Output is correct
16 Correct 37 ms 18140 KB Output is correct
17 Execution timed out 1105 ms 75120 KB Time limit exceeded
18 Halted 0 ms 0 KB -