Submission #66569835


Source Code Expand

Copy
from atcoder.dsu import DSU
uf = DSU(3000)
from heapq import *
hq = []
co = {}
def d(x, y):
x1, y1 = co[x]
x2, y2 = co[y]
return abs(x1 - x2) + abs(y1 - y2)
v_lis = []
def new(id):
for i in v_lis:
if i == id:
continue
dist = d(i, id)
heappush(hq, (dist,id,i))
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
from atcoder.dsu import DSU

uf = DSU(3000)
from heapq import *

hq = []
co = {}


def d(x, y):
    x1, y1 = co[x]
    x2, y2 = co[y]
    return abs(x1 - x2) + abs(y1 - y2)

v_lis = []
def new(id):
    for i in v_lis:
        if i == id:
            continue
        dist = d(i, id)
        heappush(hq, (dist,id,i))
    v_lis.append(id)

cur = 0
n, q = map(int, input().split())
nowcnt = n
cmp=n
for i in range(n):
    x, y = map(int, input().split())
    co[i]=(x,y)
for i in range(n):
    for j in range(i+1,n):
        heappush(hq,(d(i,j),i,j))
v_lis.extend(range(n))
for _ in range(q):
    a=list(map(int,input().split()))
    t=a[0]
    if t==1:
        x,y=a[1:]
        co[nowcnt]=(x,y)
        new(nowcnt)
        nowcnt+=1
        cmp+=1
    elif t==2:
        if cmp==1:
            print(-1)
            continue
        k=-1
        while hq and cmp>1:
            dist,u,v=heappop(hq)
            if not uf.same(u,v):
                k=dist
                heappush(hq,(dist,u,v))
                break
        if k==-1:
            print(-1)
        else:
            tmp=[]
            while hq:
                dist,u,v=heappop(hq)
                if dist==k:
                    if uf.merge(u,v):
                        cmp-=1
                else:
                    tmp.append((dist,u,v))
            hq=tmp
            heapify(hq)
            print(k)
    else:
        u,v=a[1]-1,a[2]-1
        print("Yes" if uf.same(u,v) else "No")

Submission Info

Submission Time
Task F - Connecting Points
User juten
Language Python (PyPy 3.10-v7.3.12)
Score 0
Code Size 1527 Byte
Status TLE
Exec Time 2238 ms
Memory 532052 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 500
Status
AC × 1
AC × 6
TLE × 39
Set Name Test Cases
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 134 ms 84424 KiB
01_test_00.txt AC 680 ms 275132 KiB
01_test_01.txt TLE 2223 ms 317320 KiB
01_test_02.txt TLE 2235 ms 532052 KiB
01_test_03.txt TLE 2223 ms 317796 KiB
01_test_04.txt AC 1646 ms 449256 KiB
01_test_05.txt TLE 2223 ms 316144 KiB
01_test_06.txt TLE 2220 ms 317960 KiB
01_test_07.txt TLE 2226 ms 315992 KiB
01_test_08.txt TLE 2221 ms 319948 KiB
01_test_09.txt TLE 2224 ms 317512 KiB
01_test_10.txt TLE 2223 ms 320124 KiB
01_test_11.txt TLE 2223 ms 316216 KiB
01_test_12.txt AC 691 ms 275984 KiB
01_test_13.txt TLE 2226 ms 317792 KiB
01_test_14.txt TLE 2238 ms 531764 KiB
01_test_15.txt TLE 2224 ms 315148 KiB
01_test_16.txt AC 1602 ms 450108 KiB
01_test_17.txt TLE 2224 ms 313744 KiB
01_test_18.txt TLE 2224 ms 317244 KiB
01_test_19.txt TLE 2224 ms 315216 KiB
01_test_20.txt TLE 2224 ms 313820 KiB
01_test_21.txt TLE 2224 ms 315208 KiB
01_test_22.txt TLE 2224 ms 314252 KiB
01_test_23.txt TLE 2223 ms 315500 KiB
01_test_24.txt TLE 2220 ms 242700 KiB
01_test_25.txt TLE 2221 ms 321672 KiB
01_test_26.txt TLE 2224 ms 317776 KiB
01_test_27.txt TLE 2224 ms 317244 KiB
01_test_28.txt TLE 2221 ms 321528 KiB
01_test_29.txt TLE 2221 ms 319920 KiB
01_test_30.txt TLE 2223 ms 317012 KiB
01_test_31.txt TLE 2223 ms 312772 KiB
01_test_32.txt TLE 2224 ms 319648 KiB
01_test_33.txt TLE 2224 ms 312752 KiB
01_test_34.txt TLE 2223 ms 315804 KiB
01_test_35.txt TLE 2224 ms 313076 KiB
01_test_36.txt TLE 2224 ms 315176 KiB
01_test_37.txt TLE 2224 ms 313788 KiB
01_test_38.txt TLE 2223 ms 312836 KiB
01_test_39.txt TLE 2224 ms 317540 KiB
01_test_40.txt TLE 2228 ms 453452 KiB
01_test_41.txt TLE 2226 ms 377092 KiB
01_test_42.txt TLE 2232 ms 464644 KiB
01_test_43.txt AC 134 ms 84448 KiB


2025-06-07 (Sat)
22:47:06 +09:00