Pagini recente » Cod sursa (job #2346227) | Cod sursa (job #2208902) | Cod sursa (job #164661) | Cod sursa (job #1926180) | Cod sursa (job #164279)
Cod sursa(job #164279)
type pelem=^elem;
elem=record
ii,ij,divi:longint;
next:pelem;
end;
var fi,fo:text;
n,m,i,j,d,k,l,aux:longint;
v:array[1..10000]of int64;
p,f:pelem;
function ggt(a,b:longint):longint;
begin
if b=0 then ggt:=a
else ggt:=ggt(b,a mod b);
end;
procedure verif(f:pelem);
begin
if ggt(v[f^.ii],v[f^.ij])<>f^.divi then
begin
writeln(fo,-1);
close(fo);
halt;
end;
end;
begin
assign(fi,'oz.in'); reset(fi);
assign(fo,'oz.out'); rewrite(fo);
read(fi,n,m);
for k:=1 to m do
begin
read(fi,i,j,d);
new(p);
p^.ii:=i;
p^.ij:=j;
p^.divi:=d;
p^.next:=f;
f:=p;
if v[i]=0 then v[i]:=d
else v[i]:=v[i]*d div ggt(d,v[i]);
if v[i]>2000000000 then
begin
writeln(fo,-1);
close(fo);
halt;
end;
if v[j]=0 then v[j]:=d
else v[j]:=v[j]*d div ggt(d,v[j]);
if v[j]>2000000000 then
begin
writeln(fo,-1);
close(fo);
halt;
end;
end;
while f<>nil do
begin
verif(f);
f:=f^.next;
end;
for i:=1 to n do
write(fo,v[i],' ');
close(fi);
close(fo);
end.