Pagini recente » Cod sursa (job #1140725) | Cod sursa (job #432291) | Cod sursa (job #2033617) | Cod sursa (job #3226525) | Cod sursa (job #2220709)
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long xs,xd,ys,yj,solA,solP;
int i,ok,j;
struct du{
long long x1,x2,y1,y2;}dr[4];
int main()
{
for(i=1;i<=3;i++){
f>>dr[i].x1>>dr[i].y1>>dr[i].x2>>dr[i].y2;
solA+=(dr[i].x2-dr[i].x1)*(dr[i].y2-dr[i].y1);
solP+=2*((dr[i].x2-dr[i].x1)+(dr[i].y2-dr[i].y1));
}
ok=0;
for(i=1;i<=3;i++)
for(j=i+1;j<=3;j++)
{
xs=max(dr[i].x1,dr[j].x1);
xd=min(dr[i].x2,dr[j].x2);
yj=max(dr[i].y1,dr[j].y1);
ys=min(dr[i].y2,dr[j].y2);
if(xs<xd&&ys>yj){
solA-=(xd-xs)*(ys-yj);
solP-=2*((xd-xs)+(ys-yj));
}
else
ok=1;
}
if(ok==0){
xs=max(dr[1].x1,max(dr[2].x1,dr[3].x1));
xd=min(dr[1].x2,min(dr[2].x2,dr[3].x2));
yj=max(dr[1].y1,max(dr[2].y1,dr[3].y1));
ys=min(dr[1].y2,min(dr[2].y2,dr[3].y2));
if(xs<xd&&ys>yj)
solA+=(xd-xs)*(ys-yj);
solP+=2*((xd-xs)+(ys-yj));
}
g<<solA<<" "<<solP;;
return 0;
}