Cod sursa(job #164809)

Utilizator katakunaCazacu Alexandru katakuna Data 24 martie 2008 20:53:31
Problema Oz Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>

int n,m,v[10000],i,a,b,c,d;


int cmmdc(int a,int b){
int r;

  while(b!=0){
  r=a%b;
  a=b;
  b=r;
  }


return a;
}


int main(){


FILE *f=fopen("oz.in","r");
fscanf(f,"%d %d",&n,&m);


//int ok=1;

for(i=1;i<=n;i++)
v[i]=1;

FILE *g=fopen("oz.out","w");

  for(i=1;i<=m;i++){
  fscanf(f,"%d %d %d",&a,&b,&c);

  d = cmmdc (v[a],c);

   v[a]*=c/d;


  d = cmmdc (v[b],c);

   v[b]*=c/d;



  }


int ok=1;

fclose(f);

FILE *ff=fopen("oz.in","r");

fscanf(f,"%d %d",&n,&m);

  for(i=1;i<=m;i++){
  fscanf(f,"%d %d %d",&a,&b,&c);

  if(cmmdc(v[a],v[b])!=c){
  ok=0;
  fprintf(g,"%d",-1);
  break;
  }

  }



  if(ok)

   for(i=1;i<=n;i++)
   fprintf(g,"%d ",v[i]);

fclose(g);
fclose(ff);
return 0;
}