Cod sursa(job #401749)

Utilizator Tucu94Andrei Tuculanu Tucu94 Data 23 februarie 2010 08:38:32
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
int v[10001],a,b,c,d,x,y,z,i,r,n,m,ok;
int main(){

	FILE*f=fopen("oz.in","r");
	FILE*g=fopen("oz.out","w");
	
	
	fscanf(f,"%d %d",&n,&m);
	
	for (i=1;i<=n;i++)
		v[i]=1;
	
	for (i=1;i<=m;i++){
		fscanf(f,"%d %d %d",&x,&y,&z);
		a=v[x];
		b=z;
		c=v[y];
		d=z;
		while(b){
			r=a%b;
			a=b;
			b=r;
		}
		v[x]=v[x]*(z/a);
		while(d){
			r=c%d;
			c=d;
			d=r;
		}
		v[y]=v[y]*(z/c);
		
		
	}

	fclose(f);

	f=fopen("oz.in","r");

	fscanf(f,"%d %d",&n,&m);
	
	for(i=1;i<=m;i++){
		fscanf(f,"%d %d %d",&x,&y,&z);
		a=v[x];
		b=v[y];
		while(b){
			r=a%b;
			a=b;
			b=r;
		}

		if(z!=a) {
			ok=1;
			break;
		}
		
	}

fclose(f);

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


	fclose(g);





return 0;
}