Cod sursa(job #136323)

Utilizator philandrewChindea Filip philandrew Data 15 februarie 2008 13:56:43
Problema Trapez Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.07 kb
var f : text;
    np, i, j, k, nrt : longint;
    difs : longint;
    x, y : Array[1..1001] of longint;
    difx, dify, dr : Array[1..4000] of longint;
    flg : boolean;

begin
  assign(f, 'trapez.in');
  reset(f);
  readln(f, np);
  for i := 1 to np do
    readln(f, x[np], y[np]);
  close(f);
  difs := 0;
  for i := 1 to np do
    for j := i + 1 to np do
    begin
      flg := true;
      for k := 1 to difs do
        if (difx[k] * (y[j] - y[i]) = dify[k] * (x[j] - x[i])) then
        begin
          flg := false;
          break;
        end;
      if flg then
      begin
        difs := difs + 1;
        difx[difs] := x[j] - x[i];
        dify[difs] := y[j] - y[i];
        dr[difs] := 0;
      end;
    end;
  for i := 1 to np do
    for j := i + 1 to np do
      for k := 1 to difs do
        if (difx[k] * (y[j] - y[i]) = dify[k] * (x[j] - x[i])) then
          dr[k] := dr[k] + 1;
  nrt := 0;
  for i := 1 to difs do
    nrt := nrt + (dr[k] * (dr[k] - 1)) div 2;
  assign(f, 'trapez.out');
  rewrite(f);
  writeln(f, nrt);
  close(f);
end.