Pagini recente » Cod sursa (job #200447) | Cod sursa (job #3293952) | Cod sursa (job #1284271) | Cod sursa (job #1855944) | Cod sursa (job #144985)
Cod sursa(job #144985)
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
const int X1 = 0;
const int X2 = 1;
const int Y1 = 2;
const int Y2 = 3;
int rec[ 8 ][ 4 ];
long long Per;
long long Arie;
int c;
void inter( int r1,int r2,int rf ) {
rec[rf][X1] = max( rec[r1][X1], rec[r2][X1] );
rec[rf][X2] = min( rec[r1][X2], rec[r2][X2] );
rec[rf][Y1] = max( rec[r1][Y1], rec[r2][Y1] );
rec[rf][Y2] = min( rec[r1][Y2], rec[r2][Y2] );
}
long long cArie( int r ) {
if ( rec[r][X1] <= rec[r][X2] && rec[r][Y1] <= rec[r][Y2] ) {
return ( (long long) (rec[r][X2]-rec[r][X1])*(rec[r][Y2]-rec[r][Y1] ) );
}
return 0;
}
long long cPer( int r ) {
if ( rec[r][X1] <= rec[r][X2] && rec[r][Y1] <= rec[r][Y2] ) {
return ( (long long) 2*(rec[r][X2]-rec[r][X1]) + 2*(rec[r][Y2]-rec[r][Y1]) );
}
return 0;
}
int main()
{
int x0,y0,x1,y1;
int scot;
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for ( int i = 0; i < 3; i++ )
scanf("%d %d %d %d\n", &rec[i][X1], &rec[i][Y1], &rec[i][X2], &rec[i][Y2] );
inter( 0, 1, 3 );
inter( 0, 2, 4 );
inter( 1, 2, 5 );
inter( 3, 4, 6 );
inter( 5, 6, 7 );
Arie = cArie(0) + cArie(1) + cArie(2) - cArie(3) - cArie(4) - cArie(5) + cArie(7);
Per = cPer(0) + cPer(1) + cPer(2) - cPer(3) - cPer(4) - cPer(5) + cPer(7);
printf("%lld %lld\n", Arie, Per);
return 0;
}