Pagini recente » Cod sursa (job #332409) | Cod sursa (job #2545061) | Cod sursa (job #1141060) | Cod sursa (job #870216) | Cod sursa (job #2703903)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct interval{
long long x1,y1,x2,y2;
}a[3];
int n, m;
long long arie_sol, perimetru_sol;
long long arie(interval d)
{
return (d.y2 - d.y1) * (d.x2 - d.x1);
}
long long perimetru(interval d)
{
return 2 * (d.y2 - d.y1 + d.x2 - d.x1);
}
interval intersectie(interval x, interval y)
{
interval solutie;
solutie.x1 = max(x.x1, y.x1);
solutie.y1 = max(y.y1, x.y1);
solutie.x2 = min(x.x2, y.x2);
solutie.y2 = min(x.y2, y.y2);
if (solutie.x1 > solutie.x2 || solutie.y1 > solutie.y2)
solutie.x1 = solutie.x2 = solutie.y1 = solutie.y2 = 0;
return solutie;
}
int main() {
for (int i=0;i<3;i++){
fin >> a[i].x1 >> a[i].y1 >> a[i].x2 >> a[i].y2;
}
arie_sol = arie(a[0]) + arie(a[1]) + arie(a[2]) -
arie(intersectie(a[0], a[1])) -
arie(intersectie(a[0], a[2])) -
arie(intersectie(a[1], a[2])) +
arie(intersectie(intersectie(a[0], a[1]), a[2]));
perimetru_sol = perimetru(a[0]) + perimetru(a[1]) + perimetru(a[2]) -
perimetru(intersectie(a[0], a[1])) -
perimetru(intersectie(a[0], a[2])) -
perimetru(intersectie(a[1], a[2])) +
perimetru(intersectie(intersectie(a[0], a[1]), a[2]));
fout << arie_sol << " " << perimetru_sol << '\n';
return 0;
}