Pagini recente » Cod sursa (job #3255103) | Cod sursa (job #3039483) | Cod sursa (job #457960) | Cod sursa (job #327302) | Cod sursa (job #1586370)
#include <iostream>
#include <fstream>
using namespace std;
#define max(x,y) (x)<(y)?y:x;
#define min(x,y) (x)<(y)?x:y;
ifstream fin ( "reuniune.in" );
ofstream fout ( "reuniune.out" );
struct dreptunghi
{
long long int x1,x2,y1,y2;
};
long long int arie ( dreptunghi a)
{
return (long long int) ((a.x2-a.x1)*(a.y2-a.y1));
}
long long int perimetru ( dreptunghi a)
{
return (long long int)( 2*(a.x2 +a.y2 - a.x1 -a.y1));
}
dreptunghi inter ( dreptunghi a , dreptunghi b)
{
dreptunghi nou;
nou.x1 = max(a.x1,b.x1);
nou.y1 = max(a.y1,b.y1);
nou.x2 = min(a.x2,b.x2);
nou.y2 = min(a.y2,b.y2);
if( nou.x2 < nou.x1 || nou.y2 < nou.y1)
{
nou.x1 = 0;
nou.y1 = 0;
nou.x2 = 0;
nou.y2 = 0;
}
return nou;
}
int main()
{
dreptunghi a , b ,c ;
fin >> a.x1 >> a.y1 >> a.x2 >>a.y2 >> b.x1 >> b.y1 >> b.x2 >> b.y2 >> c.x1 >> c.y1 >> c.x2 >>c.y2 ;
fin.close();
long long int ar , pr;
dreptunghi d1 = inter(a,b);
dreptunghi d2 = inter(b,c);
dreptunghi d3 = inter(c,a);
dreptunghi d4 = inter(d1,c);
ar = arie(a) + arie(b) + arie(c) - arie(d1) - arie(d2) - arie(d3) +arie(d4);
pr = perimetru(a) + perimetru(b) + perimetru(c) - perimetru(d1) - perimetru(d2) - perimetru(d3) +perimetru(d4);
fout << ar << " " << pr;
fout.close();
return 0;
}