Cod sursa(job #189457)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 14 mai 2008 16:46:30
Problema Reuniune Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.2 kb
var f,g:Text;
    a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,l1,l2,ci1,ci2,ok,k:int64;
begin
assign(f,'reuniune.in');
assign(g,'reuniune.out');
reset(f);
rewrite(g);
read(f,a1,a2,a3,a4);
read(f,b1,b2,b3,b4);
read(f,c1,c2,c3,c4);
k:=(a3-a1)*(a4-a2)+(b3-b1)*(b4-b2)+(c3-c1)*(c4-c2);
if (a1>b1)then l1:=a1 else l1:=b1;
if (a3<b3)then l2:=a3 else l2:=b3;
if (l1>=l2)then ok:=1 else
  begin
    if (a2>b2)then ci1:=a2 else ci1:=b2;
    if (a4<b4)then ci2:=a4 else ci2:=b4;
    if (ci1>=ci2)then ok:=1 else
      begin
        dec(k,(l2-l1)*(ci2-ci1));
        if (a1>c1)then l1:=a1 else l1:=c1;
        if (a3<c3)then l2:=a3 else l2:=c3;
        if (l1>=l2)then ok:=1 else
          begin
            if (a2>c2)then ci1:=a2 else ci1:=c2;
            if (a4<c4)then ci2:=a4 else ci2:=c4;
            if (ci1>=ci2)then ok:=1 else
              begin
                dec(k,(l2-l1)*(ci2-ci1));
                if (c1>b1)then l1:=c1 else l1:=b1;
                if (c3<b3)then l2:=c3 else l2:=b3;
                if (l1>=l2)then ok:=1 else
                  begin
                    if (c2>b2)then ci1:=c2 else ci1:=b2;
                    if (c4<b4)then ci2:=c4 else ci2:=b4;
                    if (ci1>=ci2)then ok:=1 else
                      begin
                        dec(k,(l2-l1)*(ci2-ci1));
                        if (a1>l1)then l1:=a1;
                        if (a3<l2)then l2:=a3;
                        if (l2<=l1)then ok:=1 else
                          begin
                            if (a2>ci1)then ci1:=a2;
                            if (a4<ci2)then ci2:=a4;
                            if (ci2<=ci1)then ok:=1 else
                              inc(k,(ci2-ci1)*(l2-l1));
                          end;
                      end;
                  end;
              end;
          end;
      end;
  end;
if (ok=1)then write(g,'0 0') else
begin
  if (a1<b1)then l1:=a1 else l1:=b1;
  if (c1<l1)then l1:=c1;
  if (a3>b3)then l2:=a3 else l2:=b3;
  if (c3>l2)then l2:=c3;
  if (a2<b2)then ci1:=a2 else ci1:=b2;
  if (c2<ci1)then ci1:=c2;
  if (a4>b4)then ci2:=a4 else ci2:=b4;
  if (c4>ci2)then ci2:=c4;
  write(g,k,' ',2*(l2-l1)+2*(ci2-ci1));
end;
close(f);
close(g);
end.