Pagini recente » Cod sursa (job #2744001) | Cod sursa (job #1821081) | Profil kicking_names | Cod sursa (job #1724788) | Cod sursa (job #2437224)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct dreptunghi
{
int x,y,x2,y2;
}d1, d2, d3, d12, d13, d23, d123;
bool Inside(int x, int y, dreptunghi a)
{
return x >= a.x && x <= a.x2 && y >= a.y && y <= a.y2;
}
dreptunghi Intersection(dreptunghi a, dreptunghi b)
{
dreptunghi p = {0, 0, 0, 0};
if (Inside(a.x, a.y, b) || Inside(a.x2, a.y2, b) || Inside(b.x, b.y, a) || Inside(b.x2, b.y2, a))
{
int max1 = -1000000001;
int max2 = -1000000001;
int min1 = 1000000001;
int min2 = 1000000001;
max1 = max(a.x, b.x);
max2 = max(a.y, b.y);
min1 = min(a.x2, b.x2);
min2 = min(a.y2, b.y2);
p = {max1, max2, min1, min2};
}
return p;
}
int main()
{
fin >> d1.x >> d1.y >> d1.x2 >> d1.y2;
fin >> d2.x >> d2.y >> d2.x2 >> d2.y2;
fin >> d3.x >> d3.y >> d3.x2 >> d3.y2;
d12 = Intersection(d1, d2);
d13 = Intersection(d1, d3);
d23 = Intersection(d2, d3);
d123 = Intersection(d12, d3);
fout << (d1.x2-d1.x)*(d1.y2-d1.y)+(d2.x2-d2.x)*(d2.y2-d2.y)+(d3.x2-d3.x)*(d3.y2-d3.y)-(d12.x2-d12.x)*(d12.y2-d12.y)-(d13.x2-d13.x)*(d13.y2-d13.y)-(d23.x2-d23.x)*(d23.y2-d23.y)+(d123.x2-d123.x)*(d123.y2-d123.y) << " ";
fout << (d1.x2-d1.x+d1.y2-d1.y)*2+(d2.x2-d2.x+d2.y2-d2.y)*2+(d3.x2-d3.x+d3.y2-d3.y)*2-(d12.x2-d12.x+d12.y2-d12.y)*2-(d13.x2-d13.x+d13.y2-d13.y)*2-(d23.x2-d23.x+d23.y2-d23.y)*2+(d123.x2-d123.x+d123.y2-d123.y)*2;
fin.close();
fout.close();
return 0;
}