Cod sursa(job #335680)

Utilizator LuffyBanu Lavinia Luffy Data 30 iulie 2009 22:28:28
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<stdio.h>
#define dim 10001
#define dimm 100001
using namespace std;
long long a[dim];
long nrv1[dimm],nrv2[dimm],divv[dimm];

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

int main()
{long n,m,i,nr1,nr2,div;
long aux;
 FILE *f=fopen("oz.in","r"), *g=fopen("oz.out","w");
 
 fscanf(f,"%ld%ld",&n,&m);
  for(i=1;i<=n;i++) a[i]=1;

for(i=1;i<=m;i++)
 {fscanf(f,"%ld%ld%ld", &nr1,&nr2,&div);
   nrv1[i]=nr1; nrv2[i]=nr2; divv[i]=div;
    
   aux=euclid(a[nr1],div);
   a[nr1]=a[nr1]*div/aux;
   aux=euclid(a[nr2],div);
   a[nr2]=a[nr2]*div/aux;
 }
 
 for(i=1;i<=m;i++)
  {aux=euclid(a[nrv1[i]],a[nrv2[i]]);
   if(aux!=divv[i]) {fprintf(g,"-1"); fclose(f); fclose(g); return 0;}
  }
for(i=1;i<=n;i++)
 fprintf(g,"%lld ",a[i]);

fprintf(g,"\n");
 
fclose(f);
fclose(g);
return 0;
}