Pagini recente » Cod sursa (job #32373) | Cod sursa (job #549426) | Cod sursa (job #443112) | Cod sursa (job #1957523) | Cod sursa (job #1691077)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi
{
int x1,x2,y1,y2;
}; dreptunghi a1,a2,a3,b1,b2,b3,b;
long long arie(dreptunghi d)
{
return ((long long)d.x2-d.x1)*(d.y2-d.y1);
}
long long perimetru(dreptunghi d)
{
return (((long long)d.x2-d.x1)+(d.y2-d.y1))<<1;
}
dreptunghi intersectie(dreptunghi x,dreptunghi y)
{
dreptunghi z;
z.x1=max(x.x1,y.x1);
z.x2=min(x.x2,y.x2);
z.y1=max(x.y1,y.y1);
z.y2=min(x.y2,y.y2);
if(z.x2<z.x1||z.y2<z.y1)z.x1=z.x2=z.y1=z.y2=0;
return z;
}
int main()
{
f>>a1.x1>>a1.y1>>a1.x2>>a1.y2>>a2.x1>>a2.y1>>a2.x2>>a2.y2>>a3.x1>>a3.y1>>a3.x2>>a3.y2;
b1=intersectie(a1,a2);
b2=intersectie(a2,a3);
b3=intersectie(a3,a1);
b=intersectie(b1,a3);
long long arietotala,perimetrutotal;
arietotala=arie(a1)+arie(a2)+arie(a3)+arie(b)-(arie(b1)+arie(b2)+arie(b3));
perimetrutotal=perimetru(a1)+perimetru(a2)+perimetru(a3)+perimetru(b)-(perimetru(b1)+perimetru(b2)+perimetru(b3));
g<<arietotala<<" "<<perimetrutotal;
return 0;
}