Cod sursa(job #165273)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 25 martie 2008 19:51:52
Problema Oz Scor 5
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.36 kb
var f:text;
    c1,c2,N,M,i,j,d,k:longint;
    A:array[1..10000] of LongInt;
    ok:boolean;
    V:array[1..10000] of record
                             i,j,d:integer;
                           end;
Function cmmdc(x,y:longint):longint;
var r:longint;
begin
     repeat
           r:=x Mod y;
           x:=y;
           y:=r;
     until r=0;
     cmmdc:=x;
end;
Begin
     assign(f,'oz.in'); reset(f);
     Readln(f,N,M);
     For k:=1 To N do
         A[k]:=1;
     ok:=False;
     For k:=1 To M do
     begin
          Readln(f,i,j,d);
          V[k].i:=i;
          V[k].j:=j;
          V[k].d:=d;
          c1:=cmmdc(A[i],d);
          c2:=cmmdc(A[j],d);
          A[i]:=(A[i]*d) Div c1;
          A[j]:=(A[j]*d) Div c2;
     end;
     close(f);
     assign(f,'oz.out'); rewrite(f);
     if Not ok then write(f,'-1')
     else begin
               ok:=True;
               For k:=1 To M do
                   if cmmdc(A[V[k].i],A[V[k].j])<>V[k].d then begin
                           ok:=False;
                           break;
                      end;
               if Not ok then write(f,'-1')
                         else begin
                            For i:=1 To N-1 do
                                write(f,A[i],' ');
                            write(f,A[N]);
                         end;
     end;
     close(f);
End.