Cod sursa(job #184300)

Utilizator black_pussaasd sada black_puss Data 23 aprilie 2008 14:02:17
Problema Oz Scor 5
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.95 kb
program oz;
var f,g:text;
    n,m,i,j,d,k:longint;
    a:array[1..10000]of longint;

function cmmmc(a,b:longint):longint;
var a2,b2,aux:longint;
begin
  a2:=a; b2:=b;
  while a2<>b2 do
   begin
    if a2>b2 then
     a2:=a2-b2 else
     b2:=b2-a2;
   end;
  aux:=(a*b) div a2;
  if ((a*b)/a2)<>aux then
   aux:=-1;
  cmmmc:=aux
end;

begin
  assign(f,'oz.in');
  reset(f);
  readln(f,n,m);
  assign(g,'oz.out');
  rewrite(g);
  for k:=1 to m do
   begin
    readln(f,i,j,d);
    if a[i]=0 then
     a[i]:=d else
     a[i]:=cmmmc(a[i],d);
    if (a[i]>2000000000) or (a[j]=-1) then
     begin
      break;
      write(g,'-1');
      close(g);
      halt;
     end;
    if a[j]=0 then
     a[j]:=d else
     a[j]:=cmmmc(a[j],d);
    if (a[j]>2000000000) or (a[j]=-1) then
     begin
      break;
      write(g,'-1');
      close(g);
      halt;
     end;
   end;
  for i:=1 to n do
   write(g,a[i],' ');
  close(g);
end.