Cod sursa(job #164491)

Utilizator LegolasCazacu Iulian Legolas Data 24 martie 2008 12:31:29
Problema Oz Scor 35
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.84 kb
var f,g:text;
    a,b,c,cd:array[1..10000]of int64;
    x,y:int64;
    cmmdc,i,j,m,n,r:longint;
    ok:boolean;
begin
assign(f,'oz.in');reset(f);
assign(g,'oz.out');rewrite(g);
read(f,n,m);
for i:=1 to m do
read(f,a[i],b[i],c[i]);
for i:=m+1 to 2*m do begin
a[i]:=b[i-m];
b[i]:=a[i-m];
c[i]:=c[i-m];
end;
m:=2*m;
for i:=1 to n do
cd[i]:=1;
for i:=1 to m do begin
x:=cd[a[i]];
y:=c[i];
r:=x mod y;
while r>0 do begin
x:=y;
y:=r;
r:=x mod y;
end;
cmmdc:=y;
cd[a[i]]:=cd[a[i]]*(c[i] div cmmdc);
end;
ok:=true;
for i:=1 to m do begin
x:=cd[a[i]];
y:=cd[b[i]];
if (x>2000000000)or(y>2000000000) then ok:=false;
r:=x mod y;
while r>0 do begin
x:=y;
y:=r;
r:=x mod y;
end;
if y<>c[i] then ok:=false;
end;
if ok=false then writeln(g,-1)
else for i:=1 to n do
write(g,cd[i],' ');
writeln(g);
close(f);
close(g);
end.