Cod sursa(job #301829)

Utilizator pedobearBacauanu Vlad pedobear Data 8 aprilie 2009 14:34:42
Problema Oz Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>

int v[10010],trip[4][100200];
int n,m,i,h;

int euclid (int a,int b)
{
     int r=1;
     while (r!=0){
           r=a%b;
           a=b;
           b=r;
           }
     return a;
}

int main ()
{
    freopen ("oz.in","r",stdin);
    freopen ("oz.out","w",stdout);
    
    scanf ("%d %d",&n,&m);
    for (i=1;i<=n;i++) v[i]=1;
    
    for (i=1;i<=m;i++){
        scanf ("%d %d %d",&trip[1][m],&trip[2][m],&trip[3][m]);
        v[trip[1][m]]= v[trip[1][m]] / euclid (v[trip[1][m]],trip[3][m]) * trip[3][m];
        v[trip[2][m]]= v[trip[2][m]] / euclid (v[trip[2][m]],trip[3][m]) * trip[3][m];
        }
        
    for (i=1;i<=m;i++)
        if (trip[3][m] != euclid( v[trip[1][m]],v[trip[2][m]])) h=1;
        
    //if ( h==0) printf ("-1");
    //else
    for (i=1;i<=n;i++) printf ("%d ",v[i]);
    
    return 0;
}