Pagini recente » Profil Antonio020712 | Cod sursa (job #2217769)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct Rect
{
int x0;
int x1;
int y0;
int y1;
} v[4];
uint64_t A, P;
uint64_t ar(Rect r) { return 1LL*(r.x1-r.x0)*(r.y1-r.y0); }
uint64_t pe(Rect r) { return 2LL*(r.x1+r.y1-r.x0-r.y0); }
Rect inter(Rect r1, Rect r2)
{
Rect r;
r.x0 = max(r1.x0, r2.x0), r.x1 = min(r1.x1, r2.x1);
r.y0 = max(r1.y0, r2.y0), r.y1 = min(r1.y1, r2.y1);
if(r.x0 > r.x1 || r.y0 > r.y1)
{
r.x0 = r.x1 = 0;
r.y0 = r.y1 = 0;
}
return r;
}
int main()
{
for(int i=1;i<=3;i++)
f>>v[i].x0>>v[i].y0>>v[i].x1>>v[i].y1;
A = ar(v[1]) + ar(v[2]) + ar(v[3]) - (ar(inter(v[1], v[2])) + ar(inter(v[1], v[3])) + ar(inter(v[2], v[3])))+ar(inter(inter(v[1], v[2]), v[3]));
P = pe(v[1]) + pe(v[2]) + pe(v[3]) - (pe(inter(v[1], v[2])) + pe(inter(v[1], v[3])) + pe(inter(v[2], v[3])))+pe(inter(inter(v[1], v[2]), v[3]));
g<<A<<' '<<P;
return 0;
}