Pagini recente » Cod sursa (job #1541217) | Cod sursa (job #2923576) | Cod sursa (job #2360365) | Cod sursa (job #311507) | Cod sursa (job #3245724)
#include <iostream>
using namespace std;
struct pat
{
int x1,y1,x2,y2;
} p[4];
pat getintersect(pat (&patrat1),pat (&patrat2))
{
int x1=max(patrat1.x1,patrat2.x1);
int x2=min(patrat1.x2,patrat2.x2);
int y1=max(patrat1.y1,patrat2.y1);
int y2=min(patrat1.y2,patrat2.y2);
if(x1<=x2&&y1<=y2)
return {x1,y1,x2,y2};
else
return {0,0,0,0};
}
int getariepat(pat (&patrat))
{
return abs(patrat.x2-patrat.x1)*(patrat.y2-patrat.y1);
}
int getperim(pat (&patrat))
{
return abs(patrat.x2-patrat.x1)+(patrat.y2-patrat.y1);
}
int main()
{
for(int i=1; i<=3; i++)
{
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
p[i] = {x1,y1,x2,y2};
}
pat c1=getintersect(p[1],p[2]);
pat c2=getintersect(p[1],p[3]);
pat c3=getintersect(p[2],p[3]);
pat c4=getintersect(p[1],c3);
cout<<getariepat(p[1])+getariepat(p[2])+getariepat(p[3])
-getariepat(c1)-
getariepat(c2)-
getariepat(c3)+
getariepat(c4)<<" ";
cout<<getperim(p[1])+getperim(p[2])+getperim(p[3])-
getperim(c1)-
getperim(c2)-
getperim(c3)+
getperim(c4);
return 0;
}