Cod sursa(job #401722)

Utilizator Aronn00Vladutu Georgian Aronn00 Data 23 februarie 2010 08:22:20
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
int a,b,n,m,i,k,j,d,p,q,s,t,pk,r,ok;
int v[10000];
int vi[100006];
int vj[100006];
int vd[100006];
int main() {
	FILE*f=fopen("oz.in","r");
	FILE*g=fopen("oz.out","w");
	fscanf(f,"%d %d",&n,&m);
	for(p=1;p<=n;p++)
		v[p]=1;
	for(k=1;k<=m;k++){
		fscanf(f,"%d %d %d",&i,&j,&d);
		vi[++t]=i;
		vj[++s]=j;
		vd[++q]=d;
		a=v[i];
		b=d;
		
		while(b){
			r=a%b;
			a=b;
			b=r;
		}
		v[i]*=d/a;
		
		a=v[j];
		b=d;
		
		while(b){
			r=a%b;
			a=b;
			b=r;
		}
		v[j]*=d/a;
		
	}
	ok=1;
	for(i=1;i<=t;i++){
		a=v[vi[i]];
		b=v[vj[i]];
		while(b){
			r=a%b;
			a=b;
			b=r;
		}
		if(a!=vd[i])
			ok=0;
	}
	if(ok)
		for(i=1;i<=n;i++)
			fprintf(g,"%d ",v[i]);
	else
		fprintf(g,"%d",-1);

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