Cod sursa(job #163579)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 22 martie 2008 14:47:46
Problema Oz Scor 90
Compilator fpc Status done
Runda preONI 2008, Runda Finala, Clasele 5-8 Marime 0.97 kb
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.