Cod sursa(job #400906)

Utilizator Robert29FMI Tilica Robert Robert29 Data 22 februarie 2010 10:09:37
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
FILE*f=fopen("oz.in","r");
FILE*g=fopen("oz.out","w");
int a,b,r,ok,t,m,n,v[10002],i[100002],j[100002],d[100002];
int main() {
	fscanf(f,"%d%d",&n,&m);
	for(t=1;t<=n;t++)
		v[t]=1;
	for(t=1;t<=m;t++){
		fscanf(f,"%d%d%d",&i[t],&j[t],&d[t]);
		a=v[i[t]];
		b=d[t];
		r=0;
		while(b!=0){
			r=a%b;
			a=b;
			b=r;
		}
		v[i[t]]*=d[t]/a;
		a=v[j[t]];
		b=d[t];
		r=0;
		while(b!=0){
			r=a%b;
			a=b;
			b=r;
		}
		v[j[t]]*=d[t]/a;
	}
	for(t=1;t<=m&&ok==0;t++){
		a=v[i[t]];
		b=v[j[t]];
		r=0;
		while(b!=0){
			r=a%b;
			a=b;
			b=r;
		}
		if(a!=d[t])
			ok=1;
	}
	if(ok==0)
		for(t=1;t<=n;t++)
			fprintf(g,"%d ",v[t]);
	else
		fprintf(g,"-1");
	fclose(f);
	fclose(g);
	return 0;
}