Please sign in first.
Submission #13349468
Source Code Expand
import sys
import numpy as np
from numba import njit
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
INF = 10**9 + 1
N, M = map(int, readline().split())
data = np.array(read().split(), np.int64)
A = data[::3]
B = data[1::3]
C = data[2::3]
D = A[N:]
E = B[N:]
F = C[N:]
A = A[:N]
B = B[:N]
C = C[:N]
X = np.unique(np.concatenate([A, B, D, [0, -INF, INF]]))
Y = np.unique(np.concatenate([C, E, F, [0, -INF, INF]]))
DX = X[1:] - X[:-1]
DY = Y[1:] - Y[:-1]
A = np.searchsorted(X, A)
B = np.searchsorted(X, B)
C = np.searchsorted(Y, C)
D = np.searchsorted(X, D)
E = np.searchsorted(Y, E)
F = np.searchsorted(Y, F)
H, W = len(X), len(Y)
N = H * W
@njit
def set_ng(A, B, C, D, E, F):
p = 0
head = np.full(N, -1, np.int32)
ng = np.empty(4 * N, np.int32)
nxt = np.empty(4 * N, np.int32)
def add(v, w):
nonlocal p
nxt[p] = head[v]
head[v] = p
ng[p] = w
p += 1
for i in range(len(A)):
a, b, c = A[i], B[i], C[i]
for x in range(a, b):
v = x * W + c
add(v, v - 1)
add(v - 1, v)
for i in range(len(D)):
d, e, f = D[i], E[i], F[i]
for y in range(e, f):
v = d * W + y
add(v, v - W)
add(v - W, v)
return head, ng[:p], nxt[:p]
head, ng, nxt = set_ng(A, B, C, D, E, F)
@njit
def next_w(head, ng, nxt, v):
p = head[v]
V = [v - W, v + W, v - 1, v + 1]
while p != -1:
if ng[p] in V:
V.remove(ng[p])
p = nxt[p]
return V
x0, y0 = np.searchsorted(X, 0), np.searchsorted(Y, 0)
v0 = x0 * W + y0
@njit
def solve():
visited = np.zeros(N, np.bool_)
visited[v0] = 1
stack = np.empty(N, np.int32)
p = 0
ret = 0
def area(x):
x, y = divmod(x, W)
return DX[x] * DY[y]
def push(x):
nonlocal p, ret
stack[p] = x
visited[x] = 1
ret += area(x)
p += 1
def pop():
nonlocal p
p -= 1
return stack[p]
push(v0)
while p:
v = pop()
for w in next_w(head, ng, nxt, v):
if visited[w]:
continue
x, y = divmod(w, W)
if x == 0 or x == H - 1 or y == 0 or y == W - 1:
return 0
push(w)
return ret
x = solve()
if x == 0:
print('INF')
else:
print(x)
Submission Info
| Submission Time | |
|---|---|
| Task | F - . (Single Dot) |
| User | maspy |
| Language | Python (3.8.2) |
| Score | 600 |
| Code Size | 2538 Byte |
| Status | AC |
| Exec Time | 2488 ms |
| Memory | 227780 KiB |
Judge Result
| Set Name | Sample | Subtask1 | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| Subtask1 | sample_01.txt, sample_02.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_34.txt, sub1_35.txt, sub1_36.txt, sub1_37.txt, sub1_38.txt, sub1_39.txt, sub1_40.txt, sub1_41.txt, sub1_42.txt, sub1_43.txt, sub1_44.txt, sub1_45.txt, sub1_46.txt, sub1_47.txt, sub1_48.txt, sub1_49.txt, sub1_50.txt, sub1_51.txt, sub1_52.txt, sub1_53.txt, sub1_54.txt, sub1_55.txt, sub1_56.txt, sub1_57.txt, sub1_58.txt, sub1_59.txt, sub1_60.txt, sub1_61.txt, sub1_62.txt, sub1_63.txt, sub1_64.txt, sub1_65.txt, sub1_66.txt, sub1_67.txt, sub1_68.txt, sub1_69.txt, sub1_70.txt, sub1_71.txt, sub1_72.txt, sub1_73.txt, sub1_74.txt, sub1_75.txt, sub1_76.txt, sub1_77.txt, sub1_78.txt, sub1_79.txt, sub1_80.txt, sub1_81.txt, sub1_82.txt, sub1_83.txt, sub1_84.txt, sub1_85.txt, sub1_86.txt, sub1_87.txt, sub1_88.txt, sub1_89.txt, sub1_90.txt, sub1_91.txt, sub1_92.txt, sub1_93.txt, sub1_94.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 1299 ms | 120908 KiB |
| sample_02.txt | AC | 1290 ms | 121440 KiB |
| sub1_01.txt | AC | 1317 ms | 141492 KiB |
| sub1_02.txt | AC | 1312 ms | 134988 KiB |
| sub1_03.txt | AC | 1317 ms | 129304 KiB |
| sub1_04.txt | AC | 1429 ms | 143464 KiB |
| sub1_05.txt | AC | 1334 ms | 160232 KiB |
| sub1_06.txt | AC | 1312 ms | 134824 KiB |
| sub1_07.txt | AC | 1314 ms | 138000 KiB |
| sub1_08.txt | AC | 1315 ms | 136516 KiB |
| sub1_09.txt | AC | 1307 ms | 134188 KiB |
| sub1_10.txt | AC | 1360 ms | 180160 KiB |
| sub1_11.txt | AC | 1383 ms | 131976 KiB |
| sub1_12.txt | AC | 1296 ms | 122084 KiB |
| sub1_13.txt | AC | 1289 ms | 121656 KiB |
| sub1_14.txt | AC | 1295 ms | 121280 KiB |
| sub1_15.txt | AC | 1298 ms | 122232 KiB |
| sub1_16.txt | AC | 1291 ms | 121196 KiB |
| sub1_17.txt | AC | 1423 ms | 145156 KiB |
| sub1_18.txt | AC | 1474 ms | 145364 KiB |
| sub1_19.txt | AC | 1468 ms | 144628 KiB |
| sub1_20.txt | AC | 1434 ms | 143956 KiB |
| sub1_21.txt | AC | 1418 ms | 142808 KiB |
| sub1_22.txt | AC | 1435 ms | 143088 KiB |
| sub1_23.txt | AC | 1414 ms | 144860 KiB |
| sub1_24.txt | AC | 1444 ms | 143916 KiB |
| sub1_25.txt | AC | 1410 ms | 143120 KiB |
| sub1_26.txt | AC | 1472 ms | 145156 KiB |
| sub1_27.txt | AC | 1452 ms | 147732 KiB |
| sub1_28.txt | AC | 1471 ms | 147472 KiB |
| sub1_29.txt | AC | 1478 ms | 147300 KiB |
| sub1_30.txt | AC | 1455 ms | 147228 KiB |
| sub1_31.txt | AC | 1432 ms | 146360 KiB |
| sub1_32.txt | AC | 1429 ms | 143736 KiB |
| sub1_33.txt | AC | 1442 ms | 144760 KiB |
| sub1_34.txt | AC | 1455 ms | 145296 KiB |
| sub1_35.txt | AC | 1472 ms | 146244 KiB |
| sub1_36.txt | AC | 1438 ms | 144428 KiB |
| sub1_37.txt | AC | 1458 ms | 142692 KiB |
| sub1_38.txt | AC | 1355 ms | 131476 KiB |
| sub1_39.txt | AC | 1312 ms | 124392 KiB |
| sub1_40.txt | AC | 1448 ms | 143604 KiB |
| sub1_41.txt | AC | 1354 ms | 131216 KiB |
| sub1_42.txt | AC | 1297 ms | 121672 KiB |
| sub1_43.txt | AC | 1293 ms | 120988 KiB |
| sub1_44.txt | AC | 1293 ms | 121264 KiB |
| sub1_45.txt | AC | 1287 ms | 121620 KiB |
| sub1_46.txt | AC | 1293 ms | 121216 KiB |
| sub1_47.txt | AC | 1369 ms | 133232 KiB |
| sub1_48.txt | AC | 1380 ms | 130952 KiB |
| sub1_49.txt | AC | 1347 ms | 132656 KiB |
| sub1_50.txt | AC | 1361 ms | 131636 KiB |
| sub1_51.txt | AC | 1348 ms | 132360 KiB |
| sub1_52.txt | AC | 1348 ms | 130680 KiB |
| sub1_53.txt | AC | 1353 ms | 132792 KiB |
| sub1_54.txt | AC | 1365 ms | 131840 KiB |
| sub1_55.txt | AC | 1749 ms | 172348 KiB |
| sub1_56.txt | AC | 1699 ms | 173228 KiB |
| sub1_57.txt | AC | 1335 ms | 170312 KiB |
| sub1_58.txt | AC | 1684 ms | 172128 KiB |
| sub1_59.txt | AC | 1684 ms | 170284 KiB |
| sub1_60.txt | AC | 1363 ms | 169800 KiB |
| sub1_61.txt | AC | 1437 ms | 138504 KiB |
| sub1_62.txt | AC | 1660 ms | 165120 KiB |
| sub1_63.txt | AC | 1319 ms | 124728 KiB |
| sub1_64.txt | AC | 1314 ms | 150216 KiB |
| sub1_65.txt | AC | 1437 ms | 145256 KiB |
| sub1_66.txt | AC | 1418 ms | 138940 KiB |
| sub1_67.txt | AC | 1334 ms | 125988 KiB |
| sub1_68.txt | AC | 1454 ms | 146456 KiB |
| sub1_69.txt | AC | 1452 ms | 149936 KiB |
| sub1_70.txt | AC | 1470 ms | 152584 KiB |
| sub1_71.txt | AC | 1283 ms | 120860 KiB |
| sub1_72.txt | AC | 1280 ms | 120776 KiB |
| sub1_73.txt | AC | 1278 ms | 120748 KiB |
| sub1_74.txt | AC | 1338 ms | 163944 KiB |
| sub1_75.txt | AC | 1313 ms | 129728 KiB |
| sub1_76.txt | AC | 1391 ms | 220752 KiB |
| sub1_77.txt | AC | 1300 ms | 122560 KiB |
| sub1_78.txt | AC | 1299 ms | 122288 KiB |
| sub1_79.txt | AC | 1302 ms | 122656 KiB |
| sub1_80.txt | AC | 1304 ms | 122432 KiB |
| sub1_81.txt | AC | 1300 ms | 122808 KiB |
| sub1_82.txt | AC | 1310 ms | 123328 KiB |
| sub1_83.txt | AC | 1286 ms | 121240 KiB |
| sub1_84.txt | AC | 1300 ms | 122420 KiB |
| sub1_85.txt | AC | 1309 ms | 123256 KiB |
| sub1_86.txt | AC | 1287 ms | 121072 KiB |
| sub1_87.txt | AC | 1290 ms | 121092 KiB |
| sub1_88.txt | AC | 1288 ms | 121244 KiB |
| sub1_89.txt | AC | 1952 ms | 227636 KiB |
| sub1_90.txt | AC | 1957 ms | 227780 KiB |
| sub1_91.txt | AC | 1956 ms | 227308 KiB |
| sub1_92.txt | AC | 1951 ms | 226864 KiB |
| sub1_93.txt | AC | 2488 ms | 227388 KiB |
| sub1_94.txt | AC | 1291 ms | 121328 KiB |