Submission #14647413
Source Code Expand
Copy
#!/usr/bin/env python3from heapq import heappush, heappopimport sysimport numpy as npsys.setrecursionlimit(10**6)input = sys.stdin.buffer.readline# INF = sys.maxsizeINF = 10 ** 9 + 1# INF = float("inf")def dp(*x): # debugprintprint(*x)try:profileexcept:def profile(f): return f
#!/usr/bin/env python3 from heapq import heappush, heappop import sys import numpy as np sys.setrecursionlimit(10**6) input = sys.stdin.buffer.readline # INF = sys.maxsize INF = 10 ** 9 + 1 # INF = float("inf") def dp(*x): # debugprint print(*x) try: profile except: def profile(f): return f @profile def main(N, M, data): ABC = data[:3 * N] DEF = data[3 * N:] A, B, C = [ABC[i::3] for i in range(3)] D, E, F = [DEF[i::3] for i in range(3)] xticks = np.unique(np.concatenate((E, F, C, np.array([-INF, 0, INF])))) yticks = np.unique(np.concatenate((A, B, D, np.array([-INF, 0, INF])))) width = xticks[1:] - xticks[:-1] height = yticks[1:] - yticks[:-1] # compress A = np.searchsorted(yticks, A).astype(np.int16) B = np.searchsorted(yticks, B).astype(np.int16) C = np.searchsorted(xticks, C).astype(np.int16) D = np.searchsorted(yticks, D).astype(np.int16) E = np.searchsorted(xticks, E).astype(np.int16) F = np.searchsorted(xticks, F).astype(np.int16) GRAPH_WIDTH = len(xticks) GRAPH_HEIGHT = len(yticks) NUM_VERTEXES = GRAPH_HEIGHT * GRAPH_WIDTH ng_edges = np.zeros((NUM_VERTEXES, 4), dtype=np.uint8) direction = (-1, +1, -GRAPH_WIDTH, +GRAPH_WIDTH) # vertical lines A,C-B,C for i in range(N): x = C[i] for y in range(A[i], B[i]): pos = y * GRAPH_WIDTH + x ng_edges[pos, 0] = 1 # left ng_edges[pos - 1, 1] = 1 # right A = B = C = 0 # horizontal lines D,E-D,F for i in range(M): y = D[i] for x in range(E[i], F[i]): pos = y * GRAPH_WIDTH + x ng_edges[pos, 2] = 1 ng_edges[pos - GRAPH_WIDTH, 3] = 1 D = E = F = 0 total_area = 0 visited = np.zeros(NUM_VERTEXES) x = np.searchsorted(xticks, 0) y = np.searchsorted(yticks, 0) start = y * GRAPH_WIDTH + x to_visit = [start] while to_visit: pos = to_visit.pop() y, x = divmod(pos, GRAPH_WIDTH) if visited[pos]: continue if y == 0 or y == GRAPH_HEIGHT - 1 or x == 0 or x == GRAPH_WIDTH - 1: print("INF") break total_area += width[x] * height[y] visited[pos] = 1 # plan to visit neighbors for i in range(4): if not ng_edges[pos][i]: next = pos + direction[i] if visited[next]: continue to_visit.append(next) else: print(total_area) if sys.argv[-1] == 'ONLINE_JUDGE' or sys.argv[-1] == '-c': print("compiling") from numba.pycc import CC cc = CC('my_module') cc.export( 'main', "void(i4, i4, i4[:])" )(main) # b1: bool, i4: int32, i8: int64, double: f8, [:], [:, :] cc.compile() exit() else: if sys.argv[-1] != '-p': # -p: pure python mode # if not -p, import compiled module from my_module import main # pylint: disable=all # read parameter import numba N, M = map(int, input().split()) data = np.int32(sys.stdin.read().split()) main(N, M, data)
Submission Info
Submission Time | |
---|---|
Task | F - . (Single Dot) |
User | nishiohirokazu |
Language | Python (3.8.2) |
Score | 600 |
Code Size | 3267 Byte |
Status | AC |
Exec Time | 1256 ms |
Memory | 237524 KB |
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 | 381 ms | 91392 KB |
sample_02.txt | AC | 364 ms | 91492 KB |
sub1_01.txt | AC | 394 ms | 124524 KB |
sub1_02.txt | AC | 391 ms | 112872 KB |
sub1_03.txt | AC | 378 ms | 104356 KB |
sub1_04.txt | AC | 373 ms | 97548 KB |
sub1_05.txt | AC | 406 ms | 157960 KB |
sub1_06.txt | AC | 383 ms | 112560 KB |
sub1_07.txt | AC | 382 ms | 113612 KB |
sub1_08.txt | AC | 376 ms | 107992 KB |
sub1_09.txt | AC | 386 ms | 108708 KB |
sub1_10.txt | AC | 424 ms | 172580 KB |
sub1_11.txt | AC | 366 ms | 92312 KB |
sub1_12.txt | AC | 373 ms | 91456 KB |
sub1_13.txt | AC | 376 ms | 90736 KB |
sub1_14.txt | AC | 368 ms | 90736 KB |
sub1_15.txt | AC | 385 ms | 91660 KB |
sub1_16.txt | AC | 370 ms | 91504 KB |
sub1_17.txt | AC | 385 ms | 103980 KB |
sub1_18.txt | AC | 430 ms | 103592 KB |
sub1_19.txt | AC | 429 ms | 104332 KB |
sub1_20.txt | AC | 385 ms | 104652 KB |
sub1_21.txt | AC | 395 ms | 102808 KB |
sub1_22.txt | AC | 405 ms | 104248 KB |
sub1_23.txt | AC | 396 ms | 103916 KB |
sub1_24.txt | AC | 416 ms | 104740 KB |
sub1_25.txt | AC | 392 ms | 103692 KB |
sub1_26.txt | AC | 421 ms | 103920 KB |
sub1_27.txt | AC | 390 ms | 103088 KB |
sub1_28.txt | AC | 388 ms | 103528 KB |
sub1_29.txt | AC | 392 ms | 103156 KB |
sub1_30.txt | AC | 392 ms | 102820 KB |
sub1_31.txt | AC | 380 ms | 102988 KB |
sub1_32.txt | AC | 392 ms | 103516 KB |
sub1_33.txt | AC | 394 ms | 103908 KB |
sub1_34.txt | AC | 399 ms | 104268 KB |
sub1_35.txt | AC | 403 ms | 103664 KB |
sub1_36.txt | AC | 398 ms | 104436 KB |
sub1_37.txt | AC | 422 ms | 104900 KB |
sub1_38.txt | AC | 369 ms | 92476 KB |
sub1_39.txt | AC | 377 ms | 92084 KB |
sub1_40.txt | AC | 410 ms | 103932 KB |
sub1_41.txt | AC | 382 ms | 92992 KB |
sub1_42.txt | AC | 378 ms | 91912 KB |
sub1_43.txt | AC | 372 ms | 91548 KB |
sub1_44.txt | AC | 364 ms | 91532 KB |
sub1_45.txt | AC | 377 ms | 90740 KB |
sub1_46.txt | AC | 379 ms | 92144 KB |
sub1_47.txt | AC | 381 ms | 95204 KB |
sub1_48.txt | AC | 393 ms | 96224 KB |
sub1_49.txt | AC | 388 ms | 95876 KB |
sub1_50.txt | AC | 381 ms | 95840 KB |
sub1_51.txt | AC | 376 ms | 95836 KB |
sub1_52.txt | AC | 382 ms | 95872 KB |
sub1_53.txt | AC | 376 ms | 95824 KB |
sub1_54.txt | AC | 383 ms | 95776 KB |
sub1_55.txt | AC | 830 ms | 200832 KB |
sub1_56.txt | AC | 779 ms | 202132 KB |
sub1_57.txt | AC | 484 ms | 201844 KB |
sub1_58.txt | AC | 752 ms | 200268 KB |
sub1_59.txt | AC | 763 ms | 194324 KB |
sub1_60.txt | AC | 453 ms | 196708 KB |
sub1_61.txt | AC | 513 ms | 128172 KB |
sub1_62.txt | AC | 744 ms | 186352 KB |
sub1_63.txt | AC | 381 ms | 92208 KB |
sub1_64.txt | AC | 421 ms | 156952 KB |
sub1_65.txt | AC | 390 ms | 93068 KB |
sub1_66.txt | AC | 409 ms | 99608 KB |
sub1_67.txt | AC | 379 ms | 91408 KB |
sub1_68.txt | AC | 390 ms | 93816 KB |
sub1_69.txt | AC | 381 ms | 94160 KB |
sub1_70.txt | AC | 383 ms | 94268 KB |
sub1_71.txt | AC | 381 ms | 91508 KB |
sub1_72.txt | AC | 384 ms | 91328 KB |
sub1_73.txt | AC | 379 ms | 92156 KB |
sub1_74.txt | AC | 417 ms | 135816 KB |
sub1_75.txt | AC | 384 ms | 101112 KB |
sub1_76.txt | AC | 452 ms | 197468 KB |
sub1_77.txt | AC | 381 ms | 91444 KB |
sub1_78.txt | AC | 377 ms | 90872 KB |
sub1_79.txt | AC | 366 ms | 91260 KB |
sub1_80.txt | AC | 378 ms | 92084 KB |
sub1_81.txt | AC | 367 ms | 91536 KB |
sub1_82.txt | AC | 374 ms | 91712 KB |
sub1_83.txt | AC | 370 ms | 91912 KB |
sub1_84.txt | AC | 373 ms | 90912 KB |
sub1_85.txt | AC | 368 ms | 92088 KB |
sub1_86.txt | AC | 372 ms | 92160 KB |
sub1_87.txt | AC | 378 ms | 91304 KB |
sub1_88.txt | AC | 370 ms | 91680 KB |
sub1_89.txt | AC | 1005 ms | 236828 KB |
sub1_90.txt | AC | 995 ms | 236100 KB |
sub1_91.txt | AC | 1018 ms | 237524 KB |
sub1_92.txt | AC | 1007 ms | 236764 KB |
sub1_93.txt | AC | 1256 ms | 236584 KB |
sub1_94.txt | AC | 387 ms | 91532 KB |