Pagini recente » Cod sursa (job #997) | Cod sursa (job #2554720) | Cod sursa (job #349143) | Cod sursa (job #2199393) | Cod sursa (job #709070)
Cod sursa(job #709070)
#include<cstdio>
int x1[8],y1[8],x2[8],y2[8];
inline int min (int a,int b){return a<b?a:b;}
inline int max (int a,int b){return a>b?a:b;}
int area (int x)
{
return (x2[x]-x1[x])*(y2[x]-y1[x]);
}
void intdr (int x,int y)
{
x1[x|y]=max (x1[x],x1[y]);
x2[x|y]=min (x2[x],x2[y]);
y1[x|y]=max (y1[x],y1[y]);
y2[x|y]=min (y2[x],y2[y]);
if(x1[x|y]>=x2[x|y]||y2[x|y]<=y1[x|y])
x1[x|y]=x2[x|y]=y1[x|y]=y2[x|y];
}
int peri (int x)
{
return (x2[x]-x1[x]+y2[x]-y2[x])*2*2;
}
int main()
{
freopen ("reuniune.in","r",stdin);
freopen ("reuniune.out","w",stdout);
for(int i=1;i<=4;i<<=1)
scanf ("%d%d%d%d",&x1[i],&y1[i],&x2[i],&y2[i]);
intdr (1,2);
intdr (1,4);
intdr (2,4);
intdr (1,6);
printf ("%d ",area (1)+area (2)+area (4)-area (3)-area (5)-area (6)+area (7));
printf ("%d" ,peri (1)+peri (2)+peri (4)-peri (3)-peri (5)-peri (6)+peri (7));
return 0;
}