Pagini recente » Cod sursa (job #835819) | Cod sursa (job #2622206) | Cod sursa (job #1316902) | Cod sursa (job #1459701) | Cod sursa (job #135432)
Cod sursa(job #135432)
type drept=record
x0,y0:longint;
x1,y1:longint;
ok:boolean;
end;
var a:array[1..4] of drept;
f,g:text;
pe,ar:qword;
function min(x,y:longint):longint;
begin
if x<y then
min:=x
else
min:=y;
end;
function max(x,y:longint):longint;
begin
if x<y then
max:=y
else
max:=x;
end;
function inter(x,y:drept):drept;
begin
inter.x0:=max(x.x0, y.x0);
inter.y0:=max(x.y0, y.y0);
inter.x1:=min(x.x1, y.x1);
inter.y1:=min(x.y1, y.y1);
inter.ok:=true;
if inter.x0>inter.x1 then
inter.ok:=false;
if inter.y0>inter.y1 then
inter.ok:=false;
end;
function arie(x:drept):qword;
var s:qword;
begin
if x.ok then begin
s:=(x.x1-x.x0);
s:=s*(x.y1-x.y0);
arie:=s;
end
else
arie:=0;
end;
function per(x:drept):qword;
var s:qword;
begin
if x.ok then begin
s:=(x.x1-x.x0);
s:=s+(x.y1-x.y0);
s:=s*2;
per:=s;
end
else
per:=0;
end;
begin
assign(f,'reuniune.in'); reset(f);
assign(g,'reuniune.out'); rewrite(g);
read(f,a[1].x0,a[1].y0,a[1].x1,a[1].y1,a[2].x0,a[2].y0,a[2].x1,a[2].y1,a[3].x0,a[3].y0,a[3].x1,a[3].y1);
a[1].ok:=true;
a[2].ok:=true;
a[3].ok:=true;
ar:=0;
ar:=arie(a[1])+arie(a[2])+arie(a[3]);
ar:=ar-arie(inter(a[1],a[2]))-arie(inter(a[3],a[2]))-arie(inter(a[1],a[3]));
ar:=ar+arie(inter(a[1], inter(a[2],a[3])));
pe:=per(a[1])+per(a[2])+per(a[3]);
pe:=pe-per(inter(a[1],a[2]))-per(inter(a[3],a[2]))-per(inter(a[1],a[3]));
pe:=pe+per(inter(a[1], inter(a[2],a[3])));
writeln(g,ar,' ',pe);
close(f); close(g);
end.