Cod sursa(job #202016)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 5 august 2008 16:26:54
Problema Oz Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.38 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.