Cod sursa(job #1223335)

Utilizator AndreeaBaltaBalta Andreea Cristina AndreeaBalta Data 27 august 2014 19:34:35
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <cstdio>
#include<algorithm>

using namespace std;

struct DREPTUNGHI
{
	long long x1, x2, y1, y2;
}a, b, c;

DREPTUNGHI inter(DREPTUNGHI d1, DREPTUNGHI d2)
{
	DREPTUNGHI d12;
	d12.x1 = max(d1.x1, d2.x1);
	d12.y1 = max(d1.y1, d2.y1);
	d12.x2 = min(d1.x2, d2.x2);
	d12.y2 = min(d1.y2, d2.y2);
	if(d12.x1 > d12.x2 || d12.y1 > d12.y2)
		d12.x1 = d12.x2 = d12.y1 = d12.y2 = 0;
	return d12;
}
long long arie(DREPTUNGHI d12)
{
	return ((d12.x2 - d12.x1) * (d12.y2 - d12.y1));
}
long long p(DREPTUNGHI d12)
{
	return (2 * ((d12.x2 - d12.x1) + (d12.y2 - d12.y1)));
}
int main()
{
	FILE *in, *out;
	in = fopen("reuniune.in", "r");
	out = fopen("reuniune.out", "w");
	long long A, Peri;
	fscanf(in, "%I64d%I64d%I64d%I64d", &a.x1, &a.y1, &a.x2, &a.y2);
    fscanf(in, "%I64d%I64d%I64d%I64d", &b.x1, &b.y1, &b.x2, &b.y2);
    fscanf(in, "%I64d%I64d%I64d%I64d", &c.x1, &c.y1, &c.x2, &c.y2);
    A = arie(a) + arie(b) + arie(c) - arie(inter(a,b)) - arie(inter(b,c)) - arie(inter(a,c)) + arie(inter(c,(inter(a,b))));
    Peri = p(a) + p(b) + p(c) - p(inter(a,b)) - p(inter(b,c)) - p(inter(a,c)) + p(inter(c,(inter(a,b))));
    fprintf(out, "%I64d %I64d", A, Peri);
    return 0;
}