提出 #66541743
ソースコード 拡げる
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<vector>
#include<cmath>
#include<queue>
#define cmin(a,b) a=std::min(a,b)
#define cmax(a,b) a=std::max(a,b)
#define maxn 1000006
#define mod
#define inf
#define int long long
int n,q;
struct node{
int x,y;
}ls[maxn];
int dis(int x,int y){
return abs(ls[x].x-ls[y].x)+abs(ls[x].y-ls[y].y);
}
namespace DSU{
int fa[maxn];
int find(int x){
if(fa[x]==x){
return x;
}
return fa[x]=find(fa[x]);
}
void merge(int u,int v){
fa[find(u)]=find(v);
}
int connect(int u,int v){
return find(u)==find(v);
}
}
using namespace DSU;
struct info{
int val,x,y;
bool operator <(const info oth)const{
return val>oth.val;
}
};
std::priority_queue<info> que;
signed main(){
scanf("%lld%lld",&n,&q);
int cnt=n;
for(int i=1;i<=n+q;i++){
fa[i]=i;
}
for(int i=1;i<=n;i++){
scanf("%lld%lld",&ls[i].x,&ls[i].y);
for(int j=1;j<i;j++){
que.push({dis(i,j),i,j});
}
}
for(int i=1;i<=q;i++){
int opt;
scanf("%lld",&opt);
if(opt==1){
n++,cnt++;
scanf("%lld%lld",&ls[n].x,&ls[n].y);
for(int i=1;i<=n-1;i++){
que.push({dis(i,n),i,n});
}
}else if(opt==2){
if(cnt==1){
puts("-1");
}else{
int v=0;
while(1){
info x=que.top();
// printf("%lld %lld %lld\n",x.x,x.y);
que.pop();
if(!connect(x.x,x.y)){
v=x.val;
merge(x.x,x.y);
cnt--;
break;
}
}
while(!que.empty()){
info x=que.top();
if(x.val==v){
que.pop();
if(!connect(x.x,x.y)){
merge(x.x,x.y);
cnt--;
}
}else{
break;
}
}
printf("%lld\n",v);
}
}else{
int u,v;
scanf("%lld%lld",&u,&v);
if(connect(u,v)){
puts("Yes");
}else{
puts("No");
}
}
}
return 0;
}
/*
*/
提出情報
コンパイルエラー
Main.cpp: In function ‘int main()’:
Main.cpp:45:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
45 | scanf("%lld%lld",&n,&q);
| ~~~~~^~~~~~~~~~~~~~~~~~
Main.cpp:51:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
51 | scanf("%lld%lld",&ls[i].x,&ls[i].y);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:58:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
58 | scanf("%lld",&opt);
| ~~~~~^~~~~~~~~~~~~
Main.cpp:61:30: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
61 | scanf("%lld%lld",&ls[n].x,&ls[n].y);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:97:30: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
97 | scanf("%lld%lld",&u,&v);
| ~~~~~^~~~~~~~~~~~~~~~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
500 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_00.txt |
AC |
1 ms |
3848 KiB |
| 01_test_00.txt |
AC |
47 ms |
52600 KiB |
| 01_test_01.txt |
AC |
49 ms |
52696 KiB |
| 01_test_02.txt |
AC |
217 ms |
200076 KiB |
| 01_test_03.txt |
AC |
50 ms |
52528 KiB |
| 01_test_04.txt |
AC |
112 ms |
101856 KiB |
| 01_test_05.txt |
AC |
118 ms |
102032 KiB |
| 01_test_06.txt |
AC |
75 ms |
52580 KiB |
| 01_test_07.txt |
AC |
49 ms |
52536 KiB |
| 01_test_08.txt |
AC |
77 ms |
52532 KiB |
| 01_test_09.txt |
AC |
69 ms |
52560 KiB |
| 01_test_10.txt |
AC |
69 ms |
52556 KiB |
| 01_test_11.txt |
AC |
115 ms |
101828 KiB |
| 01_test_12.txt |
AC |
49 ms |
52572 KiB |
| 01_test_13.txt |
AC |
50 ms |
52556 KiB |
| 01_test_14.txt |
AC |
220 ms |
200032 KiB |
| 01_test_15.txt |
AC |
48 ms |
52604 KiB |
| 01_test_16.txt |
AC |
111 ms |
101856 KiB |
| 01_test_17.txt |
AC |
114 ms |
102036 KiB |
| 01_test_18.txt |
AC |
73 ms |
52596 KiB |
| 01_test_19.txt |
AC |
49 ms |
52532 KiB |
| 01_test_20.txt |
AC |
74 ms |
52604 KiB |
| 01_test_21.txt |
AC |
65 ms |
52700 KiB |
| 01_test_22.txt |
AC |
69 ms |
52580 KiB |
| 01_test_23.txt |
AC |
113 ms |
101876 KiB |
| 01_test_24.txt |
AC |
88 ms |
52560 KiB |
| 01_test_25.txt |
AC |
100 ms |
52648 KiB |
| 01_test_26.txt |
AC |
91 ms |
52524 KiB |
| 01_test_27.txt |
AC |
82 ms |
52596 KiB |
| 01_test_28.txt |
AC |
99 ms |
52552 KiB |
| 01_test_29.txt |
AC |
90 ms |
52584 KiB |
| 01_test_30.txt |
AC |
100 ms |
52580 KiB |
| 01_test_31.txt |
AC |
75 ms |
52672 KiB |
| 01_test_32.txt |
AC |
88 ms |
52676 KiB |
| 01_test_33.txt |
AC |
88 ms |
52608 KiB |
| 01_test_34.txt |
AC |
77 ms |
52692 KiB |
| 01_test_35.txt |
AC |
76 ms |
52524 KiB |
| 01_test_36.txt |
AC |
80 ms |
52596 KiB |
| 01_test_37.txt |
AC |
76 ms |
52524 KiB |
| 01_test_38.txt |
AC |
75 ms |
52584 KiB |
| 01_test_39.txt |
AC |
73 ms |
52520 KiB |
| 01_test_40.txt |
AC |
114 ms |
101792 KiB |
| 01_test_41.txt |
AC |
74 ms |
52576 KiB |
| 01_test_42.txt |
AC |
129 ms |
101948 KiB |
| 01_test_43.txt |
AC |
1 ms |
3856 KiB |