Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1096 Qtri : Aprilie 30, 2012, 15:39:09
eu am rezolvat problema cu ajutorul determinantilor dar nu iau mai mult de 90 de pct ( ultimul test TLE ). exista vreo metoda mai rapida ??

Cod:
Program p2;
var i,n :longint;  bufi,bufa : array[0..1 shl 21] of char;
    x1,x2,x3,x4,y1,y2,y3,y4,k1,k2,k3:int64;
begin
    assign(input,'qtri.in'); reset(input);
    assign(output,'qtri.out'); rewrite(output);
    settextbuf(input,bufi); settextbuf(output,bufa);
    readln(n);
    for i:=1 to n do begin
                     read(x1,y1,x2,y2,x3,y3,x4,y4);
                     k1:=x1*y2+x2*y4+x4*y1
                         -x4*y2-x1*y4-x2*y1;
                     k2:=x2*y3+x3*y4+x4*y2
                         -x4*y3-x2*y4-x3*y2;
                     if (k1*k2<0) then writeln('NU')
                                  else begin
                                       k3:=x3*y1+x1*y4+x4*y3
                                           -x4*y1-x3*y4-x1*y3;

                                       if (k2*k3<0) or (k1*k3<0) then writeln('NU')
                                                               else writeln('DA');
                                       end;
                     end;
end.
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines