Cod sursa(job #1013312)

Utilizator rughibemBelcineanu Alexandru Ioan rughibem Data 20 octombrie 2013 19:36:33
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
FILE *f=fopen("oz.in","r"), *g=fopen("oz.out","w");

long long int v[10004], z[100004], q;
long int x[100004], y[100004], n, m;

long long cmmdc(long long a, long long b){
long long r;
    r=a%b;
    while(r!=0){
        a=b; b=r; r=a%b;
    }   return b;
}

long int cmmmc(long long a, long long b){
    return (a*b)/cmmdc(a,b);
}

void initializare(){
long int i;
    for(i=1;i<=n;i++){
        v[i]=1;
    }
}

int main(){

    fscanf(f,"%ld %ld\n",&n,&m);
    initializare();
    for(long int i=1;i<=m;i++){
        fscanf(f,"%ld %ld %ld\n",&x[i],&y[i],&z[i]);
        v[x[i]]=cmmmc(v[x[i]],z[i]);
        v[y[i]]=cmmmc(v[y[i]],z[i]);
    }

    for(long int i=1;i<=m;i++){
        q= cmmdc(v[x[i]],v[y[i]]);
        if(q!=z[i]){fprintf(g,"-1");return 0;}
    }
    for(long int i=1;i<=n;i++){fprintf(g,"%ld ",v[i]);}

return 0;
}