C++
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
struct Line{
int p, s, e, id;
};
Line line[2][100010];
int N, i_2;
long long parent[50010],rank_[50010],size_[500010],result=-1;
int find_(int a){
if(a==parent[a])
return a;
return parent[a]=find_(parent[a]);
}
int comp(Line c,Line d){
if(c.p==d.p){
if(c.s==d.s){
return c.e<d.e;
}
return c.s<d.s;
}
return c.p<d.p;
}
//comp-line connect-sort
void union_(int a,int b){
a=find_(a);
b=find_(b);
if(a==b)
return;
if(rank_[a]<rank_[b]){
parent[a]=b;
size_[b]+=size_[a];
size_[a]=0;
result=max(result, size_[b]);
}else{
parent[b]=a;
size_[a]+=size_[b];
size_[b]=0;
result=max(result, size_[a]);
if(rank_[a]==rank_[b]){
rank_[a]++;
}
}
}
int main()
{
for(int i=0;i<=50005;i++){
parent[i]=i;
}
scanf("%d",&N);
for(int i=0;i<N;i++){
int x,y,w,h;
scanf("%d %d %d %d",&x,&y,&w,&h);
line[0][i]={x,y,y+h,i};
line[1][i]={y,x,x+w,i};
line[0][i+N]={x+w,y,y+h,i};
line[1][i+N]={y+h,x,x+w,i};
size_[i]=h*w;
result=max(result,(long long)h*w);
}
sort(line[0],line[0]+N+N,comp);
sort(line[1],line[1]+N+N,comp);
for(int j=0;j<=1;j++){
for(int i=1;i<N+N;i++){
int k,u=line[j][i-1].e;
for(k=i;line[j][k-1].p==line[j][k].p;k++){
if(u>=line[j][k].s){
u=max(u,line[j][k].e);
union_(line[j][k-1].id,line[j][k].id);
}else{
break;
}
}
i=k;
}
}
printf("%d",result);
return 0;
}
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 안내사항 | 관리자 | 2019.12.21 | 164 |
74 | 9663 | 관리자 | 2019.12.21 | 115 |
73 | 9345 | 관리자 | 2020.04.11 | 151 |
72 | 9019 | 관리자 | 2019.12.21 | 114 |
71 | 7569 | 관리자 | 2019.12.21 | 114 |
70 | 6987 | 관리자 | 2019.12.21 | 114 |
69 | 5842 | 관리자 | 2020.04.11 | 152 |
68 | 5625 | 관리자 | 2019.12.21 | 110 |
67 | 5419 | 관리자 | 2020.04.11 | 157 |
66 | 3392 | 관리자 | 2020.04.11 | 157 |
65 | 3019 | 관리자 | 2019.12.21 | 112 |
64 | 2933 | 관리자 | 2019.12.21 | 113 |
63 | 2931 | 관리자 | 2019.12.21 | 112 |
62 | 2836 | 관리자 | 2019.12.21 | 111 |
61 | 2667 | 관리자 | 2019.12.21 | 114 |
60 | 2636 | 관리자 | 2019.12.21 | 114 |
59 | 2629 | 관리자 | 2020.04.11 | 147 |
58 | 2615 | 관리자 | 2019.12.21 | 112 |
57 | 2610 | 관리자 | 2020.04.11 | 147 |
56 | 2606 | 관리자 | 2019.12.21 | 112 |
55 | 2585 | 관리자 | 2019.12.21 | 114 |
54 | 2578 | 관리자 | 2019.12.21 | 112 |
53 | 2573 | 관리자 | 2020.04.11 | 152 |
52 | 2557 | 관리자 | 2019.12.21 | 112 |
51 | 2512 | 관리자 | 2019.12.21 | 112 |
50 | 2504 | 관리자 | 2020.04.11 | 148 |
49 | 2481 | 관리자 | 2019.12.21 | 113 |
48 | 2478 | 관리자 | 2020.04.11 | 149 |
47 | 2473 | 관리자 | 2020.04.11 | 154 |
46 | 2470 | 관리자 | 2020.04.11 | 152 |