Cod sursa(job #167434)

Utilizator ErgoVicol Sergiu Constantin Ergo Data 29 martie 2008 16:36:58
Problema Oz Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
// OZ Preoni 2007

#include <fstream.h>

ifstream fin("oz.in");
ofstream fout("oz.out");
long long cmmdc(long a,long b){
	long r;
      while (b!=0){
      	r=a%b;
            a=b;
            b=r;
      }
	return a;

}
int main(){
	long A[10000],C[100000][3];
      long long n,m,i,j,d,x,y;

      fin>>n>>m;
      for (i=1;i<=n;i++)
         	A[i]=1;
      for (i=1;i<=m;i++){
      	fin>>x>>y>>d;
            C[i][0]=x; C[i][1]=y; C[i][2]=d;
            A[x]=(A[x]*d)/cmmdc(A[x],d);
            A[y]=(A[y]*d)/cmmdc(A[y],d);
      }
      for (i=1;i<=m;i++)
      	if (cmmdc(A[C[i][0]],A[C[i][1]])!=C[i][2]){
              	fout<<"-1";
                  fout.close();
                  return 0;
      	}
      for (i=1;i<=n;i++){
         fout<<A[i]<<' ';
      }
	fout.close();
      return 0;
	}