Cod sursa(job #163786)

Utilizator CezarMocanCezar Mocan CezarMocan Data 23 martie 2008 10:23:25
Problema Oz Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.07 kb

var i,j,n,m,c1,c2:longint;
    v:array[1..11000] of int64;
    ok:boolean;
    a,b,c:array[1..100100] of longint;

function cmmdc(a,b:longint):longint;
var r:longint;
begin
r:=a mod b;
while r>0 do
        begin
        a:=b;
        b:=r;
        r:=a mod b;
        end;
cmmdc:=b;
end;

begin
assign(input,'oz.in');reset(input);
assign(output,'oz.out');rewrite(output);
readln(n,m);
for i:=1 to n do
        v[i]:=1;
for i:=1 to m do
        begin
        readln(a[i],b[i],c[i]);
        c1:=cmmdc(v[a[i]],c[i]);
        c2:=cmmdc(v[b[i]],c[i]);
        v[a[i]]:=(v[a[i]]*c[i]) div c1;
        if a<>b then
                v[b[i]]:=(v[b[i]]*c[i]) div c2;
        end;
ok:=true;
for i:=1 to m do
        begin
        c1:=cmmdc(v[a[i]],v[b[i]]);
        if c1<>c[i] then
                begin
                ok:=false;
                break;
                end;
//        writeln(a,' ',b);
        end;
if not ok then
        write('-1')
else
        for i:=1 to n do
                write(v[i],' ');
writeln;
close(input);close(output);
end.