Cod sursa(job #336225)

Utilizator aladinaladin aladinn aladin Data 31 iulie 2009 12:09:22
Problema Oz Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>  
int n,m,k,v[100009],a[100009],b[100009],c[100009];  
   
int cmmmc(int a, int b)   
 {int r,q,w;  
 q=a;w=b;  
 while(b!=0)    
    {r=a%b;    
     a=b;    
     b=r;}    
 return ((q*w)/a);    
 }    
   
 int main()  
 {  
  
  freopen("oz.in","r",stdin);  
  freopen("oz.out","w",stdout);  
  scanf("%d %d",&n,&m);  
  for (k=1;k<=n;k++) v[k]=1;  
  for (k=1;k<=m;k++)  
   {scanf("%d %d %d",&a[k],&b[k],&c[k]);  
    v[a[k]]=cmmmc(v[a[k]],c[k]);  
   v[b[k]]=cmmmc(v[b[k]],c[k]);  
   }  
  
  for (k=1;k<=m;k++) if ((v[a[k]]*v[b[k]])/cmmmc(v[a[k]],v[b[k]])!=c[k]) {printf("-1");k=-1;break;}
 if (k)  
   
  {for (k=1;k<=n;k++) printf("%d ",v[k]);  }
  
   return 0;}