Submission #23136675
Source Code Expand
import sys
import numpy as np
if __name__ == "__main__":
if sys.argv[-1] == 'ONLINE_JUDGE':
import numba
try:
from numba.experimental import jitclass
except ImportError:
from numba import jitclass
from numba.pycc import CC
@jitclass([("parent_or_size", numba.int32[:]), ])
class union_find:
def __init__(self, n):
self.parent_or_size = np.full(n, -1, dtype=np.int32)
def find(self, x):
p = x
while self.parent_or_size[p] >= 0:
p = self.parent_or_size[p]
while self.parent_or_size[x] >= 0:
tmp = self.parent_or_size[x]
self.parent_or_size[x] = p
x = tmp
return p
def same(self, x, y):
return self.find(x) == self.find(y)
def size(self, x):
return -self.parent_or_size[self.find(x)]
def union(self, x, y):
x = self.find(x)
y = self.find(y)
if x == y:
return False
if self.size(x) < self.size(y):
x, y = y, x
self.parent_or_size[x] += self.parent_or_size[y]
self.parent_or_size[y] = x
return True
def solve(inp):
h, w, q = inp[:3]
uf = union_find(h * w)
painted = np.zeros((h, w), dtype=np.bool8)
adj = ((0, 1), (1, 0), (0, -1), (-1, 0))
idx = 3
for _ in range(q):
t = inp[idx]
idx += 1
if t == 1:
i, j = inp[idx: idx + 2] - 1
idx += 2
painted[i, j] = True
for di, dj in adj:
ti = i + di
tj = j + dj
if 0 <= ti < h and 0 <= tj < w and painted[ti, tj]:
uf.union(i * w + j, ti * w + tj)
else:
i1, j1, i2, j2 = inp[idx: idx + 4] - 1
idx += 4
print("Yes" if painted[i1, j1]
and uf.same(i1 * w + j1, i2 * w + j2) else "No")
cc = CC('my_module')
cc.export('solve', 'void(int32[:])')(solve)
cc.compile()
else:
from my_module import solve
solve(np.fromstring(open(0).read(), dtype=np.int32, sep=' '))
Submission Info
| Submission Time | |
|---|---|
| Task | 012 - Red Painting(★4) |
| User | riantkb |
| Language | Python (3.8.2) |
| Score | 4 |
| Code Size | 2533 Byte |
| Status | AC |
| Exec Time | 179 ms |
| Memory | 48560 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 | 115 ms | 27040 KiB |
| sample_02.txt | AC | 110 ms | 27144 KiB |
| sample_03.txt | AC | 110 ms | 27036 KiB |
| subtask_1_01.txt | AC | 168 ms | 31656 KiB |
| subtask_1_02.txt | AC | 127 ms | 31804 KiB |
| subtask_1_03.txt | AC | 142 ms | 32160 KiB |
| subtask_1_04.txt | AC | 148 ms | 39448 KiB |
| subtask_1_05.txt | AC | 141 ms | 30440 KiB |
| subtask_1_06.txt | AC | 128 ms | 28220 KiB |
| subtask_1_07.txt | AC | 143 ms | 29356 KiB |
| subtask_1_08.txt | AC | 154 ms | 34276 KiB |
| subtask_1_09.txt | AC | 128 ms | 29968 KiB |
| subtask_1_10.txt | AC | 141 ms | 29020 KiB |
| subtask_1_11.txt | AC | 125 ms | 33464 KiB |
| subtask_1_12.txt | AC | 109 ms | 28496 KiB |
| subtask_1_13.txt | AC | 126 ms | 29728 KiB |
| subtask_1_14.txt | AC | 128 ms | 28524 KiB |
| subtask_1_15.txt | AC | 148 ms | 35744 KiB |
| subtask_1_16.txt | AC | 144 ms | 41864 KiB |
| subtask_1_17.txt | AC | 140 ms | 35164 KiB |
| subtask_1_18.txt | AC | 112 ms | 27684 KiB |
| subtask_1_19.txt | AC | 133 ms | 28736 KiB |
| subtask_1_20.txt | AC | 156 ms | 32264 KiB |
| subtask_1_21.txt | AC | 153 ms | 43716 KiB |
| subtask_1_22.txt | AC | 116 ms | 36096 KiB |
| subtask_1_23.txt | AC | 131 ms | 34016 KiB |
| subtask_1_24.txt | AC | 142 ms | 34700 KiB |
| subtask_1_25.txt | AC | 144 ms | 31248 KiB |
| subtask_1_26.txt | AC | 113 ms | 29824 KiB |
| subtask_1_27.txt | AC | 156 ms | 29956 KiB |
| subtask_1_28.txt | AC | 159 ms | 29776 KiB |
| subtask_1_29.txt | AC | 163 ms | 29820 KiB |
| subtask_1_30.txt | AC | 161 ms | 29908 KiB |
| subtask_1_31.txt | AC | 162 ms | 32168 KiB |
| subtask_1_32.txt | AC | 159 ms | 29144 KiB |
| subtask_1_33.txt | AC | 153 ms | 29288 KiB |
| subtask_1_34.txt | AC | 150 ms | 47468 KiB |
| subtask_1_35.txt | AC | 172 ms | 48216 KiB |
| subtask_1_36.txt | AC | 172 ms | 48212 KiB |
| subtask_1_37.txt | AC | 179 ms | 48452 KiB |
| subtask_1_38.txt | AC | 178 ms | 48560 KiB |
| subtask_1_39.txt | AC | 174 ms | 48240 KiB |
| subtask_1_40.txt | AC | 171 ms | 48328 KiB |