Cod sursa(job #317333)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 23 mai 2009 11:21:10
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
struct rau{long i,j,d;}a[100050];
long n,m,i,x[10005],c,f;
long cmmdc(long a,long b)
{long r;
 while(b)
  {r=a%b;
   a=b;
   b=r;}
 return a;}
int main()
{
 freopen("oz.in","r",stdin);
 freopen("oz.out","w",stdout);
 scanf("%ld%ld",&n,&m);
 for(i=1;i<=n;++i)
    x[i]=1;
 for(i=1;i<=m;++i)
    {scanf("%ld%ld%ld",&a[i].i,&a[i].j,&a[i].d);
     c=cmmdc(x[a[i].i],a[i].d);
     x[a[i].i]=((long long)x[a[i].i]*a[i].d)/c;
     c=cmmdc(x[a[i].j],a[i].d);
     x[a[i].j]=((long long)x[a[i].j]*a[i].d)/c;}
 f=1;
 for(i=1;i<=m;++i)
    if(cmmdc(x[a[i].i],x[a[i].j])!=a[i].d){f=0;break;}
 if(!f)printf("-1");
 else
  for(i=1;i<=n;++i)
     printf("%ld ",x[i]);
 printf("\n");
 return 0;
}