Cod sursa(job #538772)

Utilizator zeroblitz36FMI - Roscaneanu George zeroblitz36 Data 21 februarie 2011 21:44:34
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<stdio.h>
FILE *in,*out;
struct dreptunghi
{
	long long int x1,y1,x2,y2;
}a,b,c;
long long int max(long long int a,long long int b)
{
 if(a>b)return a;
 return b; 
}
long long int min(long long int a,long long int b)
{
 if(a<b)return a;
 return b;
}
dreptunghi inter(dreptunghi d,dreptunghi e)
{
	dreptunghi f;
	f.x1=max(d.x1,e.x1);f.y1=max(d.y1,e.y1);
	f.x2=min(d.x2,e.x2);f.y2=min(d.y2,e.y2);
	if(f.x1>f.x2||f.y1>f.y2)
	{f.x1=0;f.x2=0;f.y1=0;f.y2=0;}
	return f;
}
long long int arie(dreptunghi d){return (d.x2-d.x1)*(d.y2-d.y1);}
long long int peri(dreptunghi d){return (d.x2-d.x1+d.y2-d.y1)*2;}
int main()
{
	in=fopen("reuniune.in","r");
    fscanf(in,"%I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d",
	&a.x1,&a.y1,&a.x2,&a.y2,&b.x1,&b.y1,&b.x2,&b.y2,&c.x1,&c.y1,&c.x2,&c.y2);
	fclose(in);
	out=fopen("reuniune.out","w");
	fprintf(out,"%I64d %I64d",
	arie(a)+arie(b)+arie(c)-arie(inter(a,b))-arie(inter(a,c))-arie(inter(b,c))+arie(inter(a,inter(b,c))),
	peri(a)+peri(b)+peri(c)-peri(inter(a,b))-peri(inter(a,c))-peri(inter(b,c))+peri(inter(a,inter(b,c))));
	fclose(out);
}