Pagini recente » Monitorul de evaluare | Cod sursa (job #1888158) | Cod sursa (job #974466) | Cod sursa (job #750990) | Cod sursa (job #163579)
Cod sursa(job #163579)
var a:array[1..10001] of longint;
f,g,q:text;
k,i,j,d,n,m:longint;
x,y:int64;
ok:boolean;
function cmmdc(x,y:longint):longint;
var r:longint;
begin
while (y<>0) do begin
r:=x mod y;
x:=y;
y:=r;
end;
cmmdc:=x;
end;
begin
assign(f,'oz.in'); reset(f);
assign(g,'oz.out'); rewrite(g);
read(f,n,m);
for i:=1 to n do
a[i]:=1;
ok:=true;
for k:=1 to m do begin
read(f,i,j,d);
x:=cmmdc(a[i],a[j]);
if (d mod x<>0) then begin
ok:=false;
break;
end
else begin
x:=a[i];
x:=x*d;
y:=cmmdc(a[i],d);
x:=x div y;
a[i]:=x;
x:=a[j];
x:=x*d;
y:=cmmdc(a[j],d);
x:=x div y;
a[j]:=x;
end;
end;
close(f);
reset(f);
read(f,n,m);
for k:=1 to m do begin
read(f,i,j,d);
if cmmdc(a[i],a[j])<>d then
ok:=false;
end;
if ok=false then
writeln(g,-1)
else begin
for i:=1 to n-1 do
write(g,a[i],' ');
writeln(g,a[n]);
end;
close(f); close(g);
end.