Pagini recente » Cod sursa (job #157289) | Cod sursa (job #1053196) | Cod sursa (job #1509519) | Cod sursa (job #1467964) | Cod sursa (job #1325234)
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi {long long int x1,y1,x2,y2;};
dreptunghi d1,d2,d3,in12,in23,in13,in123;
bool valid(dreptunghi A)
{
if (A.x1<A.x2 && A.y1<A.y2)
return 1;
return 0;
}
void intersect (dreptunghi A, dreptunghi B, dreptunghi &C)
{
C.x1=max(A.x1,B.x1);
C.y1=max(A.y1,B.y1);
C.x2=min(A.x2,B.x2);
C.y2=min(A.y2,B.y2);
if (valid(C)) return;
C.x1=0; C.x2=0;
C.y1=0; C.y2=0;
}
long long int arie (dreptunghi A)
{
return ((A.x2-A.x1)*(A.y2-A.y1));
}
long long int perimetru (dreptunghi A)
{
return (2*(A.x2-A.x1)+2*(A.y2-A.y1));
}
int main()
{
f>>d1.x1>>d1.y1>>d1.x2>>d1.y2;
f>>d2.x1>>d2.y1>>d2.x2>>d2.y2;
f>>d3.x1>>d3.y1>>d3.x2>>d3.y2;
intersect(d1,d2,in12);
intersect(d1,d3,in13);
intersect(d2,d3,in23);
intersect(in12,d3,in123);
g<<arie(d1)+arie(d2)+arie(d3)-arie(in12)-arie(in23)-arie(in13)+arie(in123);
g<<" ";
g<<perimetru(d1)+perimetru(d2)+perimetru(d3)-perimetru(in12)-perimetru(in23)-perimetru(in13)+perimetru(in123);
f.close();
g.close();
return 0;
}