Pagini recente » Cod sursa (job #1931053) | Cod sursa (job #1501150) | Cod sursa (job #2678721) | Cod sursa (job #2613386) | Cod sursa (job #1947444)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct Dreptunghi{
long long xu , yu , xj , yj ;
} ;
Dreptunghi a , b ,c ;
long long CalcSurface ( Dreptunghi x ){
return ( x.xu - x.xj ) * (x.yu - x.yj );
}
long long CalcPer ( Dreptunghi x ){
return 2 * ( x.xu - x.xj + x.yu - x.yj );
}
Dreptunghi CalcIntersec ( Dreptunghi x , Dreptunghi y ){
Dreptunghi temp ;
temp.xu = min ( x.xu , y.xu );
temp.yu = min ( x.yu , y.yu );
temp.xj = max ( x.xj , y.xj );
temp.yj = max( x.yj , y.yj );
if ( temp.xj > temp.xu || temp.yj > temp.yu){
temp.xj = temp.xu = temp.yj = temp.yu = 0;
}
return temp ;
}
int main(){
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
scanf("%lld%lld%lld%lld", &a.xj , &a.yj , &a.xu , &a.yu);
scanf("%lld%lld%lld%lld", &b.xj , &b.yj , &b.xu , &b.yu );
scanf("%lld%lld%lld%lld", &c.xj , &c.yj , &c.xu , &c.yu );
CalcSurface( CalcIntersec( a , b ) );
long long s = CalcSurface( a ) + CalcSurface( b ) + CalcSurface( c ) - CalcSurface( CalcIntersec( a , b ) )-
CalcSurface( CalcIntersec( a , c ) ) - CalcSurface( CalcIntersec( c , b ) ) + CalcSurface( CalcIntersec( a , CalcIntersec( b ,c ) ) ) ;
long long per = CalcPer( a ) + CalcPer( b ) + CalcPer( c ) - CalcPer( CalcIntersec( a , b ) )-
CalcPer( CalcIntersec( a , c ) ) - CalcPer( CalcIntersec( c , b ) ) + CalcPer( CalcIntersec( a , CalcIntersec( b ,c ) ) ) ;
printf("%lld " , s );
printf("%lld" , per );
return 0;
}