Pagini recente » Cod sursa (job #1722557) | Cod sursa (job #1388123)
#include <fstream>
#include <cstdio>
#include <algorithm>
using namespace std;
ifstream f("reuniune.in");
const long long n=3;
long long i, v[6];
struct dreptunghi{
long long x, X, y, Y;
} a[4];
long long aria(){
long long arie=0, p, u, i, j;
for(i=1; i<n*2; i++)
{
p=1000000010;
u=-1000000010;
for(j=1; j<=n; j++)
if(a[j].x<=v[i] && a[j].X>=v[i+1])
{
if(p>a[j].y)
p=a[j].y;
if(u<a[j].Y)
u=a[j].Y;
}
arie+=1LL*(v[i+1]-v[i])*(u-p);
}
return arie;
}
long long perimetru1(){
long long peri=0, i;
for(i=1; i<n*2; i++)
peri+=2*(v[i+1]-v[i]);
return peri;
}
long long perimetru2(){
long long peri=0, i;
for(i=1; i<=n; i++)
{
v[i*2-1]=a[i].y;
v[i*2]=a[i].Y;
}
sort(v+1, v+7);
for(i=1; i<n*2; i++)
peri+=2*(v[i+1]-v[i]);
return peri;
}
int main(){
freopen("reuniune.out", "w", stdout);
for(i=1; i<=n; i++)
{
f>>a[i].x>>a[i].y>>a[i].X>>a[i].Y;
v[i*2-1]=a[i].x;
v[i*2]=a[i].X;
}
sort(v+1, v+7);
printf("%lld", aria());
printf(" %lld\n", perimetru1()+perimetru2());
return 0;
}