Cod sursa(job #165285)
Utilizator | Data | 25 martie 2008 20:04:15 | |
---|---|---|---|
Problema | Oz | Scor | 0 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.63 kb |
var f,g:text;
c1,c2,N,M,i,j,d,k:longint;
A:array[1..10000] of LongInt;
x,y:real;
ok:boolean;
Function cmmdc(x,y:longint):longint;
var r:longint;
begin
repeat
r:=x Mod y;
x:=y;
y:=r;
until r=0;
cmmdc:=x;
end;
Begin
assign(f,'oz.in'); reset(f);
Readln(f,N,M);
For k:=1 To N do
A[k]:=1;
ok:=False;
For k:=1 To M do
begin
Readln(f,i,j,d);
c1:=cmmdc(A[i],d);
c2:=cmmdc(A[j],d);
x:=A[i]*d/c1;
y:=A[j]*d/c2;
if (x>2000000) Or (y>2000000) then begin
ok:=True; break;
end
else begin
A[i]:=Trunc(x);
A[j]:=Trunc(y);
end;
end;
close(f);
assign(f,'oz.out'); rewrite(f);
if ok then write(f,'-1')
else begin
assign(g,'oz.in'); reset(f);
Readln(g,N,M);
ok:=True;
while Not eof(g) and ok Do
begin
Readln(f,i,j,d);
ok:=cmmdc(A[i],A[j])=d;
end;
close(g);
if Not ok then write(f,'-1')
else begin
For i:=1 To N-1 do
write(f,A[i],' '); write(f,A[N]);
end;
end;
close(f);
End.