Cod sursa(job #283768)

Utilizator n3msizN3msiz n3msiz Data 19 martie 2009 19:12:22
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
int v[10002],i,n,m,k,j,d,ok;

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

}

int main(){
 FILE*f=fopen("oz.in","r");
 FILE*g=fopen("oz.out","w");
 fscanf(f,"%d%d",&n,&m);
 for(k=1;k<=n;k++)
   v[k]=1;

 for(k=1;k<=m;k++){
   fscanf(f,"%d%d%d",&i,&j,&d);
   v[i]=v[i]/cmmdc(v[i],d)*d;
   v[j]=v[j]/cmmdc(v[j],d)*d;
 }

 fclose(f);
 f = fopen("oz.in","r");
 fscanf(f,"%d %d",&n,&m);
 ok=1;
 for(k=1;k<=m&&ok;k++){
   fscanf(f,"%d%d%d",&i,&j,&d);
   if (cmmdc(v[i],v[j])!=d)
     ok=0;
 }

 if (ok) {

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

 } else
   fprintf(g,"-1");

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