Cod sursa(job #164896)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 24 martie 2008 22:15:44
Problema Oz Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
program oz;
var f,g:text;
    v:array[1..10000]of longint;
    n,m,a,b,k,i,ok:longint;
    ko,x,cx,cv,h:int64;
begin
assign(f,'oz.in');
assign(g,'oz.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to m do
  begin
    read(f,a,b,x);
    cx:=x;
    if (v[a]=0)then v[a]:=x else
    begin
      cv:=v[a];
      k:=v[a] mod x;
      while (k<>0)do
        begin
          v[a]:=x;
          x:=k;
          k:=v[a] mod x;
        end;
      ko:=cv*cx;
      h:=ko div x;
      if (h>2000000000)then
        begin
          ok:=1;
          break;
        end;
      v[a]:=h;
    end;
    x:=cx;
    if (v[b]=0)then v[b]:=x else
    begin
      cv:=v[b];
      k:=v[b] mod x;
      while (k<>0)do
        begin
          v[b]:=x;
          x:=k;
          k:=v[b] mod x;
        end;
      ko:=cv*cx;
      h:=ko div x;
      if (h>2000000000)then
        begin
          ok:=1;
          break;
        end;
      v[b]:=h;
    end;
  end;
if (ok=1)then write(g,'-1')else
for i:=1 to n do write(g,v[i],' ');
close(f);
close(g);
end.