Pagini recente » Cod sursa (job #2340842) | Cod sursa (job #3230169) | Cod sursa (job #1662349) | Cod sursa (job #1206647) | Cod sursa (job #2812513)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct dreptunghi
{
struct punct
{
long long x,y;
}st,dr;
}dr[4];
long long Ar(dreptunghi dr)
{
return (dr.dr.x-dr.st.x)*(dr.dr.y-dr.st.y);
}
long long Pr(dreptunghi dr)
{
return 2*((dr.dr.x-dr.st.x)+(dr.dr.y-dr.st.y));
}
dreptunghi Int(dreptunghi dr1, dreptunghi dr2)
{
dreptunghi dr;
dr.st.x=max(dr1.st.x,dr2.st.x);
dr.st.y=max(dr1.st.y,dr2.st.y);
dr.dr.x=min(dr1.dr.x,dr2.dr.x);
dr.dr.y=min(dr1.dr.y,dr2.dr.y);
if(dr.dr.x<dr.st.x || dr.dr.y<dr.st.y)
{
dr.st.x=0;
dr.st.y=0;
dr.dr.x=0;
dr.dr.y=0;
}
return dr;
}
long long A,P;
int main()
{
for(int i=1;i<=3;i++)
fin >> dr[i].st.x >> dr[i].st.y >> dr[i].dr.x >> dr[i].dr.y;
A=Ar(dr[1])+Ar(dr[2])+Ar(dr[3])-Ar(Int(dr[1],dr[2]))-Ar(Int(dr[2],dr[3]))-Ar(Int(dr[3],dr[1]))+Ar(Int(Int(dr[1],dr[2]),dr[3]));
P=Pr(dr[1])+Pr(dr[2])+Pr(dr[3])-Pr(Int(dr[1],dr[2]))-Pr(Int(dr[2],dr[3]))-Pr(Int(dr[3],dr[1]))+Pr(Int(Int(dr[1],dr[2]),dr[3]));
fout << A << " " << P;
return 0;
}