Cod sursa(job #166614)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 28 martie 2008 10:38:16
Problema Oz Scor 55
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.23 kb
var f,g:text;
v:array[1..10000]of int64;
a:array[1..100000]of record
                       i,j:integer;
                       d:int64;
                       end;
n:longint;
q:boolean;
d,l,i,j,m:longint;
x,y:int64;
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;
function cmmmc(x,y:longint):longint;
begin
    cmmmc:=x*y div cmmdc(x,y);
end;
begin
  assign(f,'oz.in');reset(f);
  readln(f,n,m);
  for i:=1 to n do
     v[i]:=1;

  q:=True;
  for l:=1 to m do
  begin
    readln(f,i,j,d);
    a[l].i:=i;
    a[l].j:=j;
    a[l].d:=d;
    x:=cmmmc(v[i],d);
    y:=cmmmc(v[j],d);
    if (x>2000000000) Or (y>2000000000)  then  begin
                                                       q:=False;
                                                       break;
                                              end
      else begin
        v[i]:=x;
        v[j]:=y;
      end;
  end;
close(f);
for i:=1 to m do
if cmmdc(v[a[i].i],v[a[i].j])<>a[i].d then begin q:=false; break;end;
assign(g,'oz.out');
rewrite(g);

if q then
begin
for i:=1 to n do
 write(g,v[i],' ');
end
else write(g,'-1');
close(g);
end.