Pagini recente » Cod sursa (job #1270898) | Cod sursa (job #2173280) | Cod sursa (job #584716) | Cod sursa (job #2188485) | Cod sursa (job #169396)
Cod sursa(job #169396)
var f,g:text;
a,b,d:array[1..100000] of longint;
v:array[1..20000] of int64;
i,m,n:longint;
x,y,r,diz:int64;
ok:boolean;
begin
assign (f,'oz.in');reset (f);
assign (g,'oz.out');rewrite (g);
readln (f,n,m);
for i:=1 to n do
v[i]:=1;
for i:=1 to m do begin
readln (f,a[i],b[i],d[i]);
if d[i]>v[a[i]] then begin
x:=d[i];
y:=v[a[i]];
end
else begin
x:=v[a[i]];
y:=d[i];
end;
r:=x mod y;
while r<>0 do begin
x:=y;
y:=r;
r:=x mod y;
end;
diz:=d[i] div y;
v[a[i]]:=v[a[i]]*diz;
if d[i]>v[b[i]] then begin
x:=d[i];
y:=v[b[i]];
end
else begin
x:=v[b[i]];
y:=d[i];
end;
r:=x mod y;
while r<>0 do begin
x:=y;
y:=r;
r:=x mod y;
end;
diz:=d[i] div y;
v[b[i]]:=v[b[i]]*diz;
end;
ok:=true;
for i:=1 to m do begin
if v[a[i]]>v[b[i]] then begin
x:=v[a[i]];
y:=v[b[i]];
end
else begin
x:=v[b[i]];
y:=v[a[i]];
end;
r:=x mod y;
while r<>0 do begin
x:=y;
y:=r;
r:=x mod y;
end;
if y<>d[i] then ok:=false;
end;
if not ok then writeln (g,-1,' ')
else begin
for i:=1 to n do
write (g,v[i],' ');
end;
close(f);close(g);
end.