Pagini recente » Cod sursa (job #682021) | Cod sursa (job #1830087) | Cod sursa (job #1861035) | Cod sursa (job #1388514) | Cod sursa (job #2311769)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct dreptunghi
{
int x0, y0, x1, y1;
}dr1, dr2, dr3;
inline long long arie(dreptunghi D)
{
return 1LL * (D.x1 - D.x0) * (D.y1 - D.y0);
}
inline long long perimetru(dreptunghi D)
{
return 2LL * (D.x1 - D.x0 + D.y1 - D.y0);
}
dreptunghi intersectie(dreptunghi D1,dreptunghi D2)
{
dreptunghi D;
D.x0=max(D1.x0,D2.x0);
D.x1=min(D1.x1,D2.x1);
D.y0=max(D1.y0,D2.y0);
D.y1=min(D1.y1,D2.y1);
if ((D.x0>D.x1) || (D.y0>D.y1))
{
D.x0=D.x1=D.y0=D.y1=0;
}
return D;
}
int main()
{
in >> dr1.x0 >> dr1.y0 >> dr1.x1 >> dr1.y1;
in >> dr2.x0 >> dr2.y0 >> dr2.x1 >> dr2.y1;
in >> dr3.x0 >> dr3.y0 >> dr3.x1 >> dr3.y1;
out << arie(dr1) + arie(dr2) + arie(dr3) - arie(intersectie(dr1, dr2)) - arie(intersectie(dr1, dr3)) - arie(intersectie(dr2, dr3)) + arie( intersectie(dr1, intersectie(dr2, dr3))) << " ";
out << perimetru(dr1) + perimetru(dr2) + perimetru(dr3) - perimetru(intersectie(dr1, dr2)) - perimetru(intersectie(dr1, dr3)) - perimetru(intersectie(dr2, dr3)) + perimetru(intersectie(dr1, intersectie(dr2, dr3))) << "\n";
}