Pagini recente » Cod sursa (job #229966) | Cod sursa (job #2816078) | Cod sursa (job #2548832) | Cod sursa (job #2816077) | Cod sursa (job #2247402)
#include <iostream>
#include <fstream>
#include <algorithm>
#define ll long long
using namespace std;
struct trt
{
int x0,y0,x1,y1;
} tr[4];
trt inter2( trt a,trt b)
{
trt aux;
int minix=1e9+5,maxix=-1e9-5,miniy=1e9+5,maxiy=-1e9-5;
maxix= max( maxix, max(a.x0,b.x0));
minix= min( minix, min(a.x1,b.x1));
maxiy= max( maxiy, max(a.y0,b.y0));
miniy= min( miniy, min(a.y1,b.y1));
aux.x0=maxix; aux.x1=minix; aux.y0=maxiy; aux.y1=miniy;
return aux;
}
int main()
{
ifstream t1("reuniune.in");
ofstream t2("reuniune.out");
int i;
long long minix=1e9+5,maxix=-1e9-5,miniy=1e9+5,maxiy=-1e9-5,mxx=-1e9-5,mnx=1e9+5,mxy=-1e9-5,mny=1e9+5;
long long arie=0,perimetru=0;
for(i=1;i<=3;i++)
{
t1>>tr[i].x0>>tr[i].y0>>tr[i].x1>>tr[i].y1;
arie+=1ll*(tr[i].x1-tr[i].x0)*(tr[i].y1-tr[i].y0);
perimetru+=2*(tr[i].x1-tr[i].x0 + tr[i].y1-tr[i].y0);
}
tr[0]=inter2(tr[1],tr[2]);
arie-=1ll*(tr[0].x1-tr[0].x0)*(tr[0].y1-tr[0].y0);
perimetru-=2*(tr[0].x1-tr[0].x0 + tr[0].y1-tr[0].y0);
tr[0]=inter2(tr[1],tr[3]);
arie-=1ll*(tr[0].x1-tr[0].x0)*(tr[0].y1-tr[0].y0);
perimetru-=2*(tr[0].x1-tr[0].x0 + tr[0].y1-tr[0].y0);
tr[0]=inter2(tr[2],tr[3]);
arie-=1ll*(tr[0].x1-tr[0].x0)*(tr[0].y1-tr[0].y0);
perimetru-=2*(tr[0].x1-tr[0].x0 + tr[0].y1-tr[0].y0);
tr[0]=inter2(tr[1],tr[2]);
tr[0]=inter2(tr[0],tr[3]);
arie+=1ll*(tr[0].x1-tr[0].x0)*(tr[0].y1-tr[0].y0);
perimetru+=2*(tr[0].x1-tr[0].x0 + tr[0].y1-tr[0].y0);
//cout<<tr[0].x0<<' '<<tr[0].y0<<' '<<tr[0].x1<<' '<<tr[0].y1<<'\n';
t2<<arie<<' '<<perimetru<<'\n';
}