Cod sursa(job #163674)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 22 martie 2008 14:54:32
Problema Oz Scor 100
Compilator fpc Status done
Runda preONI 2008, Runda Finala, Clasele 5-8 Marime 1.2 kb
var v,e,h,t:array[1..100010]of int64;
    r,n,k,a,b,d,q,w,m,f:int64;
    i,j:longint;
    f1:text;
begin
   assign(f1,'oz.in');
   reset(f1);
   read(f1,n,m);
   f:=0;
   for i:=1 to n do
   v[i]:=1;
   for i:=1 to m do
   begin
   read(f1,a,b,d);
   e[i]:=a;
   h[i]:=b;
   t[i]:=d;
   q:=v[a];
   w:=d;
   if w>q then begin q:=d;
                     w:=v[a];
               end;
   while q mod w>0 do
   begin
   r:=q mod w;
   q:=w;
   w:=r;
   end;
   v[a]:=v[a]*d div w;
   q:=v[b];
   w:=d;
   if w>q then begin q:=d;
                     w:=v[b];
               end;
   while q mod w>0 do
   begin
   r:=q mod w;
   q:=w;
   w:=r;
   end;
   v[b]:=v[b]*d div w;
   end;
   for i:=1 to m do
   begin
   q:=v[e[i]];
   w:=v[h[i]];
   if w>q then begin q:=v[h[i]];
                     w:=v[e[i]];
               end;
   while q mod w>0 do
   begin
   r:=q mod w;
   q:=w;
   w:=r;
   end;
   if w<>t[i] then f:=1;
   end;
   close(f1);
   assign(f1,'oz.out');
   rewrite(f1);
   if f=0 then begin for i:=1 to n do
                     write(f1,v[i],' ');
                     writeln(f1);
               end
          else writeln(f1,-1);
   close(f1);
end.