Cod sursa(job #575297)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 8 aprilie 2011 09:32:36
Problema Reuniune Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.21 kb
type dreptunghi=record x1,x2,y1,y2:longint; end;
var a:array[1..7] of dreptunghi;
    i:integer;
    per,ar,p:int64;

function max(x,y:longint):longint;
begin
if x>y then max:=x else max:=y;
end;

function min(x,y:longint):longint;
begin
if x<y then min:=x else min:=y;
end;

procedure inter(i,j,k:integer);
begin
a[k].x1:=max(a[i].x1,a[j].x1);
a[k].x2:=min(a[i].x2,a[j].x2);
a[k].y1:=max(a[i].y1,a[j].y1);
a[k].y2:=min(a[i].y2,a[j].y2);
if (a[k].x1>=a[k].x2) or (a[k].y1>=a[k].y2) then
begin
a[k].x1:=0;
a[k].x2:=0;
a[k].y1:=0;
a[k].y2:=0;
end;
end;

procedure perim(i:integer;var x:int64);
begin
x:=2*abs(a[i].x1-a[i].x2)+2*abs(a[i].y1-a[i].y2);
end;

procedure aria(i:integer;var x:int64);
begin
x:=abs((a[i].x1-a[i].x2)*(a[i].y1-a[i].y2));
end;

begin
assign(input,'reuniune.in');reset(input);
assign(output,'reuniune.out');rewrite(output);
per:=0;ar:=0;
for i:=1 to 3 do
begin
readln(a[i].x1,a[i].y1,a[i].x2,a[i].y2);
aria(i,p);
ar:=ar+p;
perim(i,p);
ar:=ar+p;
end;
inter(1,2,4);
inter(2,3,5);
inter(1,3,6);
for i:=4 to 6 do
begin
aria(i,p);
ar:=ar-p;
perim(i,p);
ar:=ar-p;
end;
inter(3,4,7);
aria(7,p);
ar:=ar+p;
perim(7,p);
ar:=ar+p;
writeln(ar,' ',per);
end.