Cod sursa(job #163756)

Utilizator marius21Marius Petcu marius21 Data 23 martie 2008 10:11:08
Problema Oz Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.02 kb
type operation=record
i,j,d:longint;
end;
var a:array[1..10000] of longint;
o:array[1..100000] of operation;
int:double;
r,i,j,n,m,x,y:longint;
ok:boolean;
f,g:text;
begin
assign(f,'oz.in');
assign(g,'oz.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to n do
  a[i]:=1;
for i:=1 to m do begin
  read(f,o[i].i,o[i].j,o[i].d);
  x:=a[o[i].i];
  y:=o[i].d;
  while y<>0 do begin
    r:= x mod y;
    x:=y;
    y:=r;
    end;
  int:=a[o[i].i]/x*o[i].d;
  a[o[i].i]:=round(int);
  x:=a[o[i].j];
  y:=o[i].d;
  while y<>0 do begin
    r:= x mod y;
    x:=y;
    y:=r;
    end;
  int:=a[o[i].j]/x*o[i].d;
  a[o[i].j]:=round(int);
  end;
ok:=true;
for i:=1 to m do begin
  x:=a[o[i].i] div o[i].d;
  y:=a[o[i].j] div o[i].d;
  while y<>0 do begin
    r:= x mod y;
    x:=y;
    y:=r;
    end;
  if x<>1 then begin
    ok:=false;
    break;
    end;
  end;
if not ok then
  writeln(g,-1)
  else begin
  for i:=1 to n do
    write(g,a[i],' ');
  writeln(g);
  end;
close(f);
close(g);
end.