Pagini recente » Cod sursa (job #358767) | Cod sursa (job #1393963) | Cod sursa (job #2597508) | Cod sursa (job #1744828) | Cod sursa (job #1951163)
#include<fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct Dreptunghi
{
long long x1,x2,y1,y2;
};
long long Area,Per;
Dreptunghi D1,D2,D3;
void Read()
{
fin>>D1.x1>>D1.y1>>D1.x2>>D1.y2;
fin>>D2.x1>>D2.y1>>D2.x2>>D2.y2;
fin>>D3.x1>>D3.y1>>D3.x2>>D3.y2;
}
long long per(Dreptunghi A)
{
return 1LL * 2 * (A.x2 - A.x1 + A.y1 - A.y2);
}
long long area(Dreptunghi A)
{
return 1LL * (A.x2 - A.x1) * (A.y2 - A.y1);
}
Dreptunghi newD(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(C.x2 < C.x1 || C.y2 < C.y1) C.x1 = C.x2 = C.y1 = C.y2 = 0;
return C;
}
void Solve()
{
Area += area(D1);
Area += area(D2);
Area += area(D3);
Area -= area(newD(D1,D2));
Area -= area(newD(D2,D3));
Area -= area(newD(D1,D3));
Area += area(newD(D1,newD(D2,D3)));
Per += per(D1);
Per += per(D2);
Per += per(D3);
Per -= per(newD(D1,D2));
Per -= per(newD(D3,D2));
Per -= per(newD(D1,D3));
Per += per(newD(D1,newD(D2,D3)));
}
void Print()
{
fout<<Area<<" "<<Per<<"\n";
}
int main()
{
Read();
Solve();
Print();
fin.close();
fout.close();
return 0;
}