Cod sursa(job #236846)

Utilizator raica_cristiraica dumitru cristian raica_cristi Data 28 decembrie 2008 17:03:46
Problema Oz Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include<stdio.h>

int check(int a,int b)
{   int c;
    while(a)
    {
            c=b%a;
            b=a;
            a=c;
}
if(b!=0)
return b;
return 0;
}
int main ()
{
    freopen("oz.in","r",stdin);
    freopen("oz.out","w",stdout);
    int n,m,i,k,q;
    int x,b,c;
    scanf("%d%d",&n,&m);
   
    long long int a[n];
    for(i=1;i<=n;i++)
    a[i]=1;
    for(i=1;i<=m;i++)
    {
                     scanf("%d%d%d",&x,&b,&c);
                     if(c>=1000000000)
                      {printf("-1\n");
                     return 0;
                     }q=2;
                     while(q!=1)
                     {q=check(c,a[x]);
                     c/=q;}
                     a[x]*=c;
                     
                     while(q!=1)
                     {q=check(c,a[b]);
                     c/=q;}
                     a[b]*=c;
                     if(a[x]>=2000000000 || a[b]>=2000000000)
                     {printf("-1\n");
                     return 0;
                     }
                     }
                     for(i=1;i<=n;i++)
                     printf("%d\n",a[i]);
                     
                     return 0;
                     }