Cod sursa(job #2267455)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 23 octombrie 2018 17:50:23
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
FILE *fin=fopen("oz.in","r");
FILE *fout=fopen("oz.out","w");
int n,m,t,aux;
long long  v[10002];
struct ijd
{
    int I;
    int J;
    int D;
}w[100002];
int cmmdc(int a,int b)
{
    if(b==0) return a;
    return cmmdc(b,a%b);
}
int main()
{
    fscanf(fin,"%d%d",&n,&m);
    for(t=1;t<=n;t++)
        v[t]=1;
    for(t=1;t<=m;t++)
    {
        fscanf(fin,"%d%d%d",&w[t].I,&w[t].J,&w[t].D);
        v[w[t].I]=(v[w[t].I]*w[t].D)/cmmdc(v[w[t].I],w[t].D);
        v[w[t].J]=(v[w[t].J]*w[t].D)/cmmdc(v[w[t].J],w[t].D);
    }
    for(t=1;t<=m;t++)
        if(w[t].D != cmmdc(v[w[t].I],v[w[t].J]))
        {
            fprintf(fout,"-1");
            return 0;
        }
    for(t=1;t<=n;t++)
        fprintf(fout,"%lld ",v[t]);
    return 0;
}