Cod sursa(job #117521)

Utilizator Pepelea_FlaviuFlaviu Pepelea Pepelea_Flaviu Data 21 decembrie 2007 16:42:35
Problema Reuniune Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.63 kb
var fi,fo:text;
    x11,y11,x12,y12,x21,y21,x22,y22,x31,y31,x32,y32,x5,y5,x6,y6:extended;
    arie,perimetru,arie1,arie2,arie3,arcom1,arcom2,arcom3,ariecomuna:extended;
    per1,per2,per3,pcom1,pcom2,pcom3,percomun:extended;
    ok:byte;
function min(a,b:extended):extended;
begin
  if a<b then min:=a
         else min:=b;
end;
function max(a,b:extended):extended;
begin
  if a>b then max:=a
         else max:=b;
end;
procedure solv(x1,y1,x2,y2,x3,y3,x4,y4:extended);
begin
  y5:=max(y1,y3);
  x5:=max(x1,x3);
  y6:=min(y2,y4);
  x6:=min(x2,x4);
end;
begin
  assign(fi,'reuniune.in'); reset(fi);
  assign(fo,'reuniune.out'); rewrite(fo);
  read(fi,x11,y11,x12,y12);
  read(fi,x21,y21,x22,y22);
  read(fi,x31,y31,x32,y32);
  arie1:=abs(x11-x12)*abs(y11-y12);
  per1:=2*abs(x12-x11)+2*abs(y12-y11);
  arie2:=abs(x21-x22)*abs(y21-y22);
  per2:=2*abs(x21-x22)+2*abs(y21-y22);
  arie3:=abs(x31-x32)*abs(y31-y32);
  per3:=2*abs(x31-x32)+2*abs(y31-y32);
  solv(x11,y11,x12,y12,x21,y21,x22,y22);
  arcom1:=abs(x5-x6)*abs(y5-y6);
  pcom1:=2*abs(x5-x6)+2*abs(y5-y6);
  solv(x11,y11,x12,y12,x31,y31,x32,y32);
  arcom2:=abs(x5-x6)*abs(y5-y6);
  pcom2:=2*abs(x5-x6)+2*abs(y5-y6);
  solv(x21,y21,x22,y22,x31,y31,x32,y32);
  arcom3:=abs(x5-x6)*abs(y5-y6);
  pcom3:=2*abs(x5-x6)+2*abs(y5-y6);
  solv(x11,y11,x12,y12,x21,y21,x22,y22);
  solv(x5,y5,x6,y6,x31,y31,x32,y32);
  ariecomuna:=abs(x5-x6)*abs(y5-y6);
  percomun:=2*abs(x5-x6)*abs(y5-y6);
  arie:=arie1+arie2+arie3-arcom1-arcom2-arcom3+ariecomuna;
  perimetru:=per1+per2+per3-pcom1-pcom2-pcom3+percomun;
  write(fo,arie:0:0,' ',perimetru:0:0);
  close(fi);
  close(fo);
end.