답안 #648205

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
648205 2022-10-05T17:24:35 Z beaconmc Stranded Far From Home (BOI22_island) Python 3
10 / 100
1000 ms 79852 KB
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])
print("".join(map(str,ans)))
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 2900 KB Output is correct
2 Correct 13 ms 2976 KB Output is correct
3 Correct 13 ms 2900 KB Output is correct
4 Correct 28 ms 3796 KB Output is correct
5 Correct 28 ms 3832 KB Output is correct
6 Correct 28 ms 3712 KB Output is correct
7 Correct 30 ms 3712 KB Output is correct
8 Correct 26 ms 3524 KB Output is correct
9 Correct 28 ms 3796 KB Output is correct
10 Correct 29 ms 3796 KB Output is correct
11 Correct 34 ms 3768 KB Output is correct
12 Correct 32 ms 3828 KB Output is correct
13 Correct 27 ms 3716 KB Output is correct
14 Correct 27 ms 3764 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 15 ms 2900 KB Output is correct
2 Correct 16 ms 2900 KB Output is correct
3 Execution timed out 1099 ms 79852 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 2900 KB Output is correct
2 Execution timed out 1100 ms 79340 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 2916 KB Output is correct
2 Execution timed out 1102 ms 79208 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 2900 KB Output is correct
2 Correct 13 ms 2976 KB Output is correct
3 Correct 13 ms 2900 KB Output is correct
4 Correct 28 ms 3796 KB Output is correct
5 Correct 28 ms 3832 KB Output is correct
6 Correct 28 ms 3712 KB Output is correct
7 Correct 30 ms 3712 KB Output is correct
8 Correct 26 ms 3524 KB Output is correct
9 Correct 28 ms 3796 KB Output is correct
10 Correct 29 ms 3796 KB Output is correct
11 Correct 34 ms 3768 KB Output is correct
12 Correct 32 ms 3828 KB Output is correct
13 Correct 27 ms 3716 KB Output is correct
14 Correct 27 ms 3764 KB Output is correct
15 Correct 15 ms 2900 KB Output is correct
16 Correct 16 ms 2900 KB Output is correct
17 Execution timed out 1099 ms 79852 KB Time limit exceeded
18 Halted 0 ms 0 KB -