Submission #66572190


Source Code Expand

Copy
/* Original Python code:
from atcoder.dsu import DSU
from heapq import *
uf=DSU(3000)
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)
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))
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/* Original Python code:
from atcoder.dsu import DSU
from heapq import *
uf=DSU(3000)
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)
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:
            while hq and hq[0][0]==k:
                _,u,v=heappop(hq)
                if uf.merge(u,v):cmp-=1
            print(k)
    else:
        u,v=a[1]-1,a[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(){
    dsu uf(3000);
    priority_queue<tuple<int,int,int>,vector<tuple<int,int,int>>,greater<tuple<int,int,int>>> hq;
    unordered_map<int,pair<int,int>> co;
    auto d=[&](int x,int y){auto a=co[x],b=co[y];return abs(a.first-b.first)+abs(a.second-b.second);};
    vector<int> v_lis;
    int n,q;cin>>n>>q;
    int nowcnt=n,cmp=n;
    for(int i=0;i<n;i++){int x,y;cin>>x>>y;co[i]={x,y};}
    for(int i=0;i<n;i++)for(int j=i+1;j<n;j++)hq.emplace(d(i,j),i,j);
    for(int i=0;i<n;i++)v_lis.push_back(i);
    while(q--){
        int t;cin>>t;
        if(t==1){
            int x,y;cin>>x>>y;
            co[nowcnt]={x,y};
            for(int i:v_lis){
                if(i==nowcnt)continue;
                hq.emplace(d(nowcnt,i),nowcnt,i);
            }
            v_lis.push_back(nowcnt);
            nowcnt++;cmp++;
        } else if(t==2){
            if(cmp==1){cout<<-1<<"\n";continue;}
            int k=-1;
            while(!hq.empty()&&cmp>1){
                auto [dist,u,v]=hq.top();hq.pop();
                if(!uf.same(u,v)){k=dist;hq.emplace(dist,u,v);break;}
            }
            if(k==-1)cout<<-1<<"\n";
            else{
                while(!hq.empty()&&get<0>(hq.top())==k){
                    auto [_,u,v]=hq.top();hq.pop();
                    if(uf.merge(u,v))cmp--;
                }
                cout<<k<<"\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 0
Code Size 2836 Byte
Status WA
Exec Time 214 ms
Memory 101740 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 500
Status
AC × 1
AC × 24
WA × 21
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 3508 KiB
01_test_00.txt AC 48 ms 27956 KiB
01_test_01.txt WA 49 ms 27968 KiB
01_test_02.txt AC 183 ms 101680 KiB
01_test_03.txt WA 49 ms 27844 KiB
01_test_04.txt AC 100 ms 52424 KiB
01_test_05.txt WA 103 ms 52468 KiB
01_test_06.txt WA 77 ms 27868 KiB
01_test_07.txt WA 49 ms 28056 KiB
01_test_08.txt WA 76 ms 27956 KiB
01_test_09.txt WA 68 ms 27952 KiB
01_test_10.txt WA 68 ms 27824 KiB
01_test_11.txt WA 105 ms 52444 KiB
01_test_12.txt AC 49 ms 27888 KiB
01_test_13.txt AC 51 ms 27864 KiB
01_test_14.txt AC 184 ms 101740 KiB
01_test_15.txt AC 49 ms 27864 KiB
01_test_16.txt AC 101 ms 52424 KiB
01_test_17.txt AC 102 ms 52496 KiB
01_test_18.txt AC 75 ms 27892 KiB
01_test_19.txt AC 49 ms 27784 KiB
01_test_20.txt AC 76 ms 27952 KiB
01_test_21.txt AC 66 ms 27888 KiB
01_test_22.txt AC 70 ms 27820 KiB
01_test_23.txt AC 102 ms 52480 KiB
01_test_24.txt AC 214 ms 27876 KiB
01_test_25.txt WA 98 ms 27956 KiB
01_test_26.txt WA 82 ms 27864 KiB
01_test_27.txt WA 78 ms 27864 KiB
01_test_28.txt WA 94 ms 28060 KiB
01_test_29.txt WA 78 ms 27880 KiB
01_test_30.txt WA 77 ms 27908 KiB
01_test_31.txt WA 75 ms 27784 KiB
01_test_32.txt WA 82 ms 27812 KiB
01_test_33.txt WA 74 ms 27812 KiB
01_test_34.txt WA 77 ms 27840 KiB
01_test_35.txt AC 77 ms 27892 KiB
01_test_36.txt WA 77 ms 27884 KiB
01_test_37.txt WA 77 ms 27956 KiB
01_test_38.txt AC 77 ms 28048 KiB
01_test_39.txt AC 75 ms 27772 KiB
01_test_40.txt AC 102 ms 52504 KiB
01_test_41.txt AC 76 ms 27784 KiB
01_test_42.txt AC 120 ms 52500 KiB
01_test_43.txt AC 1 ms 3572 KiB


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