Program p29_5; {Pag. 67}
{--------------------------------------------------------------
    In matricea A(n,n) au fost inregistrate rezultatele 
    meciurilor jucate de n echipe de fotbal 
    (fiecare doua echipe au jucat o data intre ele).
    Infrangerile au fost punctate cu 0 puncte, 
    egalitatile cu 1 punct, iar victoriile cu 2 puncte.
    
    Evident aji = 2 - aij.
    Consideram aii = 0.
    
    Sa se afiseze numerele echipelor in ordine descrescatoare 
    a punctelor acumulate.
 --------------------------------------------------------------}
uses crt;
const nm = 100;
var 
    a: array[1..nm,1..nm] of byte;
    total, ordon: array[1..nm] of word;
    i, j, n: 1..nm;
    s: word;
begin
clrscr;
Writeln('Nr de echipe? (2..',nm,') ');
readln(n);
clrscr;
Writeln('Introdu 0 pentru infrangere, 1 - egalitate si 2 pentru invingere:');
for i := 1 to n-1 do begin
 Writeln(#$D#$A'Echipa ',i,' cu:');
 for j := i+1 to n do begin
  Write('E ',j,':  ');
  readln(a[i,j]);
  a[i,j] := a[i,j] mod 3;
  a[j,i] := 2-a[i,j];
 end;
 a[i,i] := 0;
end;
clrscr;
For i := 1 to n do begin
 total[i] := 0;
 write('Echipa', i:3, ') ');
 for j := 1 to n do begin
  Write(a[i,j]:2);
  inc(total[i], a[i,j]);
 end;
 ordon[i] := i;
 j := i-1;
 while(j>0)do begin
    if total[ordon[j]] < total[ordon[i]] then begin
        s := ordon[j]; 
        ordon[j] := ordon[i];
        ordon[i] := s;        
    end;
    dec(j);
 end;
 WriteLn(' = ', total[i]);
end;
    writeln;
    Writeln('Punctaj:');
    for i:= 1 to n do  writeln('Echipa', ordon[i]:3, ') ', total[ordon[i]]);
readkey
end.
