Pagini recente » Cod sursa (job #81699) | Cod sursa (job #2222059)
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct coord
{
int x1, y1, x2, y2;
} dr1, dr2, dr3;
long long arie(coord dr)
{
return (dr.x2 - dr.x1) * 1LL * (dr.y2 - dr.y1);
}
long long perimetru (coord dr)
{
return 2LL * ((dr.x2 - dr.x1) + (dr.y2 - dr.y1));
}
coord intersectie(coord dr1, coord dr2)
{
coord dr = {max(dr1.x1, dr2.x1), max(dr1.y1, dr2.y1), min(dr1.x2, dr2.x2), min( dr1.y2, dr2.y2)};
if(dr.x1 > dr.x2 || dr.y1 > dr.y2)
dr = {0, 0, 0, 0};
return dr;
}
int main()
{
f >> dr1.x1 >> dr1.y1 >> dr1.x2 >> dr1.y2;
f >> dr2.x1 >> dr2.y1 >> dr2.x2 >> dr2.y2;
f >> dr3.x1 >> dr3.y1 >> dr3.x2 >> dr3.y2;
g << arie(dr1) + arie(dr2) + arie(dr3) - arie(intersectie(dr1, dr2)) - arie(intersectie(dr1, dr3)) - arie(intersectie(dr2, dr3)) + arie( intersectie(dr1, intersectie(dr2, dr3))) << " ";
g << 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";
return 0;
}