Submission #66578802


Source Code Expand

Copy
/*
import sys
from atcoder.dsu import DSU
from heapq import *
n,q=map(int,input().split())
co=[None]*(n+q)
for i in range(n):
co[i]=tuple(map(int,input().split()))
hq=[]
for i in range(n):
xi,yi=co[i]
for j in range(i+1,n):
xj,yj=co[j]
heappush(hq,(abs(xi-xj)+abs(yi-yj),i,j))
uf=DSU(n+q)
active=comp=n
cnt=n
for _ in range(q):
l=list(map(int,input().split()))
t=l[0]
if t==1:
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/* 
import sys
from atcoder.dsu import DSU
from heapq import *
n,q=map(int,input().split())
co=[None]*(n+q)
for i in range(n):
    co[i]=tuple(map(int,input().split()))
hq=[]
for i in range(n):
    xi,yi=co[i]
    for j in range(i+1,n):
        xj,yj=co[j]
        heappush(hq,(abs(xi-xj)+abs(yi-yj),i,j))
uf=DSU(n+q)
active=comp=n
cnt=n
for _ in range(q):
    l=list(map(int,input().split()))
    t=l[0]
    if t==1:
        x,y=l[1],l[2]
        co[cnt]=(x,y)
        for i in range(active):
            xi,yi=co[i]
            heappush(hq,(abs(xi-x)+abs(yi-y),i,cnt))
        cnt+=1;active+=1;comp+=1
    elif t==2:
        if comp<=1:
            print(-1);continue
        while hq:
            d,u,v=heappop(hq)
            if u<active and v<active and not uf.same(u,v):
                w=d
                heappush(hq,(d,u,v))
                break
        else:
            print(-1);continue
        while hq and hq[0][0]==w:
            _,u,v=heappop(hq)
            if u<active and v<active and not uf.same(u,v):
                uf.merge(u,v)
                comp-=1
        print(w)
    else:
        u,v=l[1]-1,l[2]-1
        print("Yes" if uf.same(u,v)else"No")
*/
#include <bits/stdc++.h>
#include <atcoder/dsu>
using namespace std;
using atcoder::dsu;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,q;
    cin>>n>>q;
    vector<pair<int,int>> co(n+q);
    for(int i=0;i<n;i++){
        int x,y;
        cin>>x>>y;
        co[i]={x,y};
    }
    priority_queue<tuple<int,int,int>,vector<tuple<int,int,int>>,greater<tuple<int,int,int>>> hq;
    for(int i=0;i<n;i++){
        auto [xi,yi]=co[i];
        for(int j=i+1;j<n;j++){
            auto [xj,yj]=co[j];
            hq.emplace(abs(xi-xj)+abs(yi-yj),i,j);
        }
    }
    dsu uf(n+q);
    int active=n,comp=n,cnt=n;
    while(q--){
        int t;
        cin>>t;
        if(t==1){
            int x,y;
            cin>>x>>y;
            co[cnt]={x,y};
            for(int i=0;i<active;i++){
                auto [xi,yi]=co[i];
                hq.emplace(abs(xi-x)+abs(yi-y),i,cnt);
            }
            cnt++;active++;comp++;
        } else if(t==2){
            if(comp<=1){
                cout<<-1<<"\n";
                continue;
            }
            int w;
            while(!hq.empty()){
                auto [d,u,v]=hq.top();
                hq.pop();
                if(u<active && v<active && !uf.same(u,v)){
                    w=d;
                    hq.emplace(d,u,v);
                    break;
                }
            }
            if(hq.empty() && (comp>1)){
                cout<<-1<<"\n";
                continue;
            }
            while(!hq.empty() && get<0>(hq.top())==w){
                auto [_,u,v]=hq.top();
                hq.pop();
                if(u<active && v<active && !uf.same(u,v)){
                    uf.merge(u,v);
                    comp--;
                }
            }
            cout<<w<<"\n";
        } else {
            int u,v;
            cin>>u>>v;
            --u;--v;
            cout<<(uf.same(u,v)?"Yes":"No")<<"\n";
        }
    }
    return 0;
}

Submission Info

Submission Time
Task F - Connecting Points
User juten
Language C++ 20 (gcc 12.2)
Score 500
Code Size 3253 Byte
Status AC
Exec Time 217 ms
Memory 101632 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 1
AC × 45
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 1 ms 3512 KiB
01_test_00.txt AC 35 ms 27660 KiB
01_test_01.txt AC 38 ms 27800 KiB
01_test_02.txt AC 137 ms 101560 KiB
01_test_03.txt AC 40 ms 27736 KiB
01_test_04.txt AC 74 ms 52412 KiB
01_test_05.txt AC 84 ms 52372 KiB
01_test_06.txt AC 57 ms 27704 KiB
01_test_07.txt AC 38 ms 27688 KiB
01_test_08.txt AC 60 ms 27620 KiB
01_test_09.txt AC 54 ms 27664 KiB
01_test_10.txt AC 54 ms 27620 KiB
01_test_11.txt AC 78 ms 52380 KiB
01_test_12.txt AC 35 ms 27804 KiB
01_test_13.txt AC 40 ms 27576 KiB
01_test_14.txt AC 137 ms 101632 KiB
01_test_15.txt AC 36 ms 27764 KiB
01_test_16.txt AC 73 ms 52404 KiB
01_test_17.txt AC 76 ms 52384 KiB
01_test_18.txt AC 53 ms 27616 KiB
01_test_19.txt AC 36 ms 27728 KiB
01_test_20.txt AC 53 ms 27672 KiB
01_test_21.txt AC 46 ms 27712 KiB
01_test_22.txt AC 49 ms 27800 KiB
01_test_23.txt AC 76 ms 52344 KiB
01_test_24.txt AC 217 ms 27852 KiB
01_test_25.txt AC 120 ms 27660 KiB
01_test_26.txt AC 87 ms 27740 KiB
01_test_27.txt AC 68 ms 27780 KiB
01_test_28.txt AC 117 ms 27756 KiB
01_test_29.txt AC 94 ms 27676 KiB
01_test_30.txt AC 98 ms 27784 KiB
01_test_31.txt AC 56 ms 27700 KiB
01_test_32.txt AC 82 ms 27732 KiB
01_test_33.txt AC 78 ms 27788 KiB
01_test_34.txt AC 58 ms 27716 KiB
01_test_35.txt AC 54 ms 27804 KiB
01_test_36.txt AC 65 ms 27856 KiB
01_test_37.txt AC 57 ms 27760 KiB
01_test_38.txt AC 54 ms 27752 KiB
01_test_39.txt AC 52 ms 27684 KiB
01_test_40.txt AC 76 ms 52296 KiB
01_test_41.txt AC 54 ms 27720 KiB
01_test_42.txt AC 88 ms 52348 KiB
01_test_43.txt AC 1 ms 3432 KiB


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