Pagini recente » Cod sursa (job #961108) | Cod sursa (job #596743) | Cod sursa (job #1791892) | Cod sursa (job #2141649) | Cod sursa (job #2495447)
#include <bits/stdc++.h>
#define LIMIT 1000000005
using namespace std;
ifstream f ("reuniune.in");
ofstream g ("reuniune.out");
struct Rectangle
{
long long x , y , x1 , y1;
}a[4];
Rectangle Common_Aria(Rectangle a , Rectangle b)
{
Rectangle r = {max(a.x , b.x) , max(a.y , b.y) , min(b.x1 , a.x1) , min(a.y1 , b.y1)};
if(r.x > r.x1 || r.y > r.y1)
r = {0 , 0 , 0 , 0};
return r;
}
long long Get_Aria(Rectangle a)
{
return (a.x1 - a.x) * (a.y1 - a.y);
}
long long Get_Perimeter(Rectangle a)
{
return ((a.x1 - a.x) + (a.y1 - a.y)) * 2;
}
int main()
{
long long aria = 0, perimeter = 0;
for(short i = 1 ; i <= 3 ; i++)
{
f >> a[i].x >> a[i].y >> a[i].x1 >> a[i].y1;
perimeter += Get_Perimeter(a[i]);
aria += Get_Aria(a[i]);
}
aria -= Get_Aria(Common_Aria(a[1] , a[2])) + Get_Aria(Common_Aria(a[1] , a[3])) + Get_Aria(Common_Aria(a[2] , a[3])) - Get_Aria(Common_Aria(a[1] , Common_Aria(a[2] , a[3])));
perimeter -= Get_Perimeter(Common_Aria(a[1] , a[2])) + Get_Perimeter(Common_Aria(a[1] , a[3])) + Get_Perimeter(Common_Aria(a[2] , a[3])) - Get_Perimeter(Common_Aria(a[1] , Common_Aria(a[2] , a[3])));
g << aria << ' ' << perimeter;
return 0;
}