Cod sursa(job #2267441)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 23 octombrie 2018 17:41:28
Problema Oz Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <stdio.h>
FILE *fin=fopen("oz.in","r");
FILE *fout=fopen("oz.out","w");
int n,m,i,j,t;
int  v[10001],d,r,x,aux;
struct ijd
{
    int I;
    int J;
    int D;
}w[100001];
int cmmdc(int a,int b)
{
    if(b==0) return a;
    return cmmdc(b,a%b);
}
int main()
{
   // fprintf(fout,"%d",cmmdc(32,17));
    fscanf(fin,"%d%d",&n,&m);
    /*if(m<n/2)
    {
        fprintf(fout,"-1");
        return 0;
    }*/
    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);
      //  fprintf(fout,"%d %d %d\n",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);
      //  fprintf(fout,"%d %d\n\n",v[w[t].I],v[w[t].J]);
    }
    for(t=1;t<=m;t++)
        {if(w[t].D != cmmdc(v[w[t].I],v[w[t].J])){fprintf(fout,"-1");return 0;}
           // aux=cmmdc(v[w[t].I],v[w[t].J]);
            //fprintf(fout,"%d %d au cmmdc %d verificam daca e egal cu %d\n",v[w[t].I],v[w[t].J],aux,w[t].D);
        }
    for(t=1;t<=n;t++)
        fprintf(fout,"%d ",v[t]);
    return 0;
}