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 | 173 |
| 74 | 9663 | 관리자 | 2019.12.21 | 124 |
| 73 | 9345 | 관리자 | 2020.04.11 | 160 |
| 72 | 9019 | 관리자 | 2019.12.21 | 126 |
| 71 | 7569 | 관리자 | 2019.12.21 | 123 |
| 70 | 6987 | 관리자 | 2019.12.21 | 125 |
| 69 | 5842 | 관리자 | 2020.04.11 | 161 |
| 68 | 5625 | 관리자 | 2019.12.21 | 119 |
| 67 | 5419 | 관리자 | 2020.04.11 | 166 |
| 66 | 3392 | 관리자 | 2020.04.11 | 166 |
| 65 | 3019 | 관리자 | 2019.12.21 | 121 |
| 64 | 2933 | 관리자 | 2019.12.21 | 123 |
| 63 | 2931 | 관리자 | 2019.12.21 | 121 |
| 62 | 2836 | 관리자 | 2019.12.21 | 120 |
| 61 | 2667 | 관리자 | 2019.12.21 | 123 |
| 60 | 2636 | 관리자 | 2019.12.21 | 123 |
| 59 | 2629 | 관리자 | 2020.04.11 | 156 |
| 58 | 2615 | 관리자 | 2019.12.21 | 121 |
| 57 | 2610 | 관리자 | 2020.04.11 | 158 |
| 56 | 2606 | 관리자 | 2019.12.21 | 121 |
| 55 | 2585 | 관리자 | 2019.12.21 | 127 |
| 54 | 2578 | 관리자 | 2019.12.21 | 121 |
| 53 | 2573 | 관리자 | 2020.04.11 | 161 |
| 52 | 2557 | 관리자 | 2019.12.21 | 121 |
| 51 | 2512 | 관리자 | 2019.12.21 | 121 |
| 50 | 2504 | 관리자 | 2020.04.11 | 157 |
| 49 | 2481 | 관리자 | 2019.12.21 | 122 |
| 48 | 2478 | 관리자 | 2020.04.11 | 158 |
| 47 | 2473 | 관리자 | 2020.04.11 | 163 |
| 46 | 2470 | 관리자 | 2020.04.11 | 161 |