Submission #24709890
Source Code Expand
import sys, copy
from collections import defaultdict, deque
g_counter = 0
group = defaultdict(int)
group_parent = defaultdict(int)
def create_group(r, c):
global group, group_parent, g_counter
g_counter += 1
group[(r, c)] = g_counter
group_parent[g_counter] = g_counter # self-point
def set_group(r, c, g):
global group
group[(r, c)] = g
def get_group(r, c):
global group, group_parent
p = group[(r, c)]
if p == 0:
return 0
while group_parent[p] != p:
p = group_parent[p]
return p
def merge_group(p1, p2):
global group_parent
group_parent[p2] = group_parent[p1]
####
def add_link(r, c):
global node, H, W
node[r][c] = 1
join = False
for dr, dc in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
r2, c2 = r + dr, c + dc
if 1 <= r2 <= H and 1 <= c2 <= W:
if node[r2][c2] == 1:
join = True
g1 = get_group(r, c)
g2 = get_group(r2, c2)
if g1 == 0:
set_group(r, c, g2)
else:
merge_group(g1, g2)
if not join:
create_group(r, c)
def search(r1, c1, r2, c2):
global node, H, W
if node[r1][c1] == 0 or node[r2][c2] == 0:
return 'No'
g1 = get_group(r1, c1)
g2 = get_group(r2, c2)
if g1 == g2:
return 'Yes'
else:
return 'No'
def main(f):
global node, H, W
H, W = map(int, f.readline().split())
node = [[0] * (W+1) for _ in range(H+1)]
Q = int(f.readline())
for _ in range(Q):
tmp = list(map(int, f.readline().split()))
if tmp[0] == 1:
_, r, c = tmp
add_link(r, c)
else:
_, r1, c1, r2, c2 = tmp
print(search(r1, c1, r2, c2))
main(sys.stdin)
Submission Info
Submission Time |
|
Task |
012 - Red Painting(★4) |
User |
enakai |
Language |
PyPy3 (7.3.0) |
Score |
4 |
Code Size |
1693 Byte |
Status |
AC |
Exec Time |
292 ms |
Memory |
125988 KiB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
4 / 4 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
All |
sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
86 ms |
68736 KiB |
sample_02.txt |
AC |
63 ms |
68400 KiB |
sample_03.txt |
AC |
61 ms |
68592 KiB |
subtask_1_01.txt |
AC |
165 ms |
75452 KiB |
subtask_1_02.txt |
AC |
149 ms |
84904 KiB |
subtask_1_03.txt |
AC |
161 ms |
82560 KiB |
subtask_1_04.txt |
AC |
197 ms |
99284 KiB |
subtask_1_05.txt |
AC |
176 ms |
82724 KiB |
subtask_1_06.txt |
AC |
117 ms |
75436 KiB |
subtask_1_07.txt |
AC |
239 ms |
92188 KiB |
subtask_1_08.txt |
AC |
194 ms |
88016 KiB |
subtask_1_09.txt |
AC |
139 ms |
79252 KiB |
subtask_1_10.txt |
AC |
164 ms |
77916 KiB |
subtask_1_11.txt |
AC |
134 ms |
85736 KiB |
subtask_1_12.txt |
AC |
111 ms |
77376 KiB |
subtask_1_13.txt |
AC |
147 ms |
81916 KiB |
subtask_1_14.txt |
AC |
165 ms |
81444 KiB |
subtask_1_15.txt |
AC |
185 ms |
89972 KiB |
subtask_1_16.txt |
AC |
165 ms |
98192 KiB |
subtask_1_17.txt |
AC |
204 ms |
98104 KiB |
subtask_1_18.txt |
AC |
134 ms |
77272 KiB |
subtask_1_19.txt |
AC |
194 ms |
87440 KiB |
subtask_1_20.txt |
AC |
184 ms |
83876 KiB |
subtask_1_21.txt |
AC |
212 ms |
105428 KiB |
subtask_1_22.txt |
AC |
97 ms |
89324 KiB |
subtask_1_23.txt |
AC |
149 ms |
86848 KiB |
subtask_1_24.txt |
AC |
178 ms |
90348 KiB |
subtask_1_25.txt |
AC |
167 ms |
81768 KiB |
subtask_1_26.txt |
AC |
109 ms |
79924 KiB |
subtask_1_27.txt |
AC |
199 ms |
87156 KiB |
subtask_1_28.txt |
AC |
195 ms |
82204 KiB |
subtask_1_29.txt |
AC |
212 ms |
80352 KiB |
subtask_1_30.txt |
AC |
245 ms |
81828 KiB |
subtask_1_31.txt |
AC |
198 ms |
78060 KiB |
subtask_1_32.txt |
AC |
275 ms |
84812 KiB |
subtask_1_33.txt |
AC |
292 ms |
94256 KiB |
subtask_1_34.txt |
AC |
191 ms |
125988 KiB |
subtask_1_35.txt |
AC |
227 ms |
111856 KiB |
subtask_1_36.txt |
AC |
242 ms |
113704 KiB |
subtask_1_37.txt |
AC |
221 ms |
108212 KiB |
subtask_1_38.txt |
AC |
221 ms |
108280 KiB |
subtask_1_39.txt |
AC |
239 ms |
112516 KiB |
subtask_1_40.txt |
AC |
238 ms |
112800 KiB |