Cod sursa(job #237103)

Utilizator DanielGGlodeanu Ioan Daniel DanielG Data 29 decembrie 2008 00:23:08
Problema Oz Scor 75
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.09 kb
var v:array[1..100005] of int64;
i,j,n,k:longint;
ok,stop:boolean;
m,d,g,r,dd,a,b:int64;
f:text;
begin
assign(f,'oz.in');reset(f);
readln(f,n,m);
for i:=1 to n do v[i]:=1;
stop:=true;
ok:=true;
for k:=1 to m do
   begin
    readln(f,i,j,d);
    dd:=d;
    g:=v[i];
    repeat
          r:=g mod d;
          g:=d;
          d:=r;
    until d=0;
    v[i]:=v[i]*dd div g;
    if v[i]>2000000000 then
       begin
       stop:=false;
       break;
       end;
    g:=v[j];
    d:=dd;
    repeat
         r:=g mod d;
         g:=d;
         d:=r;
    until d=0;
    v[j]:=v[j]*dd div g;
    if v[j]>2000000000 then
       begin
       stop:=false;
       break;
       end;
    a:=v[i]; b:=v[j];
    repeat
          r:=a mod b;
          a:=b;
          b:=r;
    until b=0;
    if r<>d then
       begin
       ok:=false;
       break;
       end;
   end;
close(f);
if stop then
begin
assign(f,'oz.out');rewrite(f);
if ok then
   begin
   for i:=1 to n do write(f,v[i],' ');
   writeln(f);
   end
else writeln(f,'-1');
end
else writeln(f,-1);
close(f);
end.