Cod sursa(job #586488)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 1 mai 2011 23:09:18
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<stdio.h>
#include<algorithm>
using namespace std;




int x1[10],x2[10],y1[10],y2[10],t[10],r[10],nr,s;

int intersect(int a,int b)
{
	t[1]=x1[a];
	t[2]=x2[a];
	t[3]=x1[b];
	t[4]=x2[b];
	sort(t+1,t+5);
	if ((t[2]==x2[a] && t[3]==x1[b]) || (t[2]==x2[b] && t[3]==x1[a]))
		return 0;	
	r[1]=y1[a];
	r[2]=y2[a];
	r[3]=y1[b];
	r[4]=y2[b];
	sort(r+1,r+5);
	if ((r[2]==y2[a] && r[3]==y1[b]) || (r[2]==y2[b] && r[3]==y1[a]))
		return 0;
	x1[++nr]=t[2];
	x2[nr]=t[3];
	y1[nr]=r[2];
	y2[nr]=r[3];
	if (a>=b)
		s+=2*(t[3]-t[2])+2*(r[3]-r[2]);
	else
		s-=2*(t[3]-t[2])+2*(r[3]-r[2]);
	return (t[3]-t[2])*(r[3]-r[2]);
}


int main()
{
	freopen("reuniune.in","r",stdin);
	freopen("reuniune.out","w",stdout);
	scanf("%d%d%d%d%d%d%d%d%d%d%d%d",&x1[1],&y1[1],&x2[1],&y2[1],&x1[2],&y1[2],&x2[2],&y2[2],&x1[3],&y1[3],&x2[3],&y2[3]);
	nr=3;
	printf("%d %d",intersect(1,1)+intersect(2,2)+intersect(3,3)-intersect(1,2)-intersect(1,3)-intersect(2,3)+intersect(7,3),s);
}