Pagini recente » Cod sursa (job #1591303) | Cod sursa (job #278436) | Cod sursa (job #2048374) | Cod sursa (job #215813) | Cod sursa (job #974359)
Cod sursa(job #974359)
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
struct drept{ll x1,y1,x2,y2;} d[4];
long long areaf,perif;
void read()
{
for(int i=1;i<=3;i++)
scanf("%lld%lld%lld%lld",&d[i].x1,&d[i].y1,&d[i].x2,&d[i].y2);
}
long long area(drept dd){return (dd.y2-dd.y1)*(dd.x2-dd.x1);}
long long peri(drept dd){return 2*(dd.y2-dd.y1)+2*(dd.x2-dd.x1);}
drept det(drept d1,drept d2)
{
drept null; null.x1=null.x2=null.y1=null.y2=0;
drept newd;
newd.x1=max(d1.x1,d2.x1); newd.y1=max(d1.y1,d2.y1);
newd.x2=min(d1.x2,d2.x2); newd.y2=min(d1.y2,d2.y2);
if(newd.x1>newd.x2 || newd.y1>newd.y2) return null;
else return newd;
}
void solve()
{
drept d12,d13,d23;
d12=det(d[1],d[2]); d13=det(d[1],d[3]); d23=det(d[2],d[3]);
areaf=area(d[1])+area(d[2])+area(d[3])-area(d12)-area(d13)-area(d23)+area(det(d12,d[3]));
perif=peri(d[1])+peri(d[2])+peri(d[3])-peri(d12)-peri(d13)-peri(d23)+peri(det(d12,d[3]));
printf("%lld %lld",areaf,perif);
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
read();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}