Cod sursa(job #1826911)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 11 decembrie 2016 01:47:34
Problema Reuniune Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstring>
#include <cstdio>
#include <algorithm>
#define MaxN 105
#define INF 2140000000
using namespace std;
  
FILE *IN,*OUT;

struct Rect
{
	int x1,x2,y1,y2;
	long long A()
	{
		return 1LL*(x2-x1)*(y2-y1);
	}
	long long P()
	{
		return 2LL*(x2-x1)+2LL*(y2-y1);
	}
	Rect operator*(const Rect& R)const
	{
		Rect aux;
		aux.x1=max(x1,R.x1);
		aux.x2=min(x2,R.x2);
		aux.y1=max(y1,R.y1);
		aux.y2=min(y2,R.y2);
		return aux;
	}
}R1,R2,R3,R4,R5,R6,R7;
long long sum=0,per=0;
int main()
{
    IN=fopen("reuniune.in","r");
    OUT=fopen("reuniune.out","w");

	fscanf(IN,"%d%d%d%d%d%d%d%d%d%d%d%d",&R1.x1,&R1.y1,&R1.x2,&R1.y2,&R2.x1,&R2.y1,&R2.x2,&R2.y2,&R3.x1,&R3.y1,&R3.x2,&R3.y2);
	R4=R1*R2;
	R5=R3*R1;
	R6=R3*R2;
	R7=R3*R2*R1;
	sum=R1.A()+R2.A()+R3.A()-R4.A()-R5.A()-R6.A()+R7.A();
	per=R1.P()+R2.P()+R3.P()-R4.P()-R5.P()-R6.P()+R7.P();
	fprintf(OUT,"%lld %lld",sum,per);
    return 0;
}