Cod sursa(job #334349)

Utilizator iulia609fara nume iulia609 Data 26 iulie 2009 13:22:52
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
#define dim 100001
#define dim1 10001
using namespace std;

long long v[dim1];
long long a,b, i[dim],j[dim],d[dim];

long long cmmdc(long long a, long long b)
{ 
	if(!b) return a;
	return cmmdc(b, a%b);
}

int main()
{ long long t,n,m,x;
  

	FILE *f = fopen("oz.in", "r");
	FILE *g = fopen("oz.out", "w");
	
	fscanf(f, "%lld%lld", &n, &m);
	
	for(t = 1; t <= n; t++)
		v[t] = 1;
	
	for(t = 1; t <= m; t++)
		{
			fscanf(f, "%lld%lld%lld", &i[t], &j[t], &d[t]);
			x = cmmdc(v[i[t]], d[t]);
			v[i[t]] = (v[i[t]]*d[t])/x;
			x = cmmdc(v[j[t]], d[t]);
			v[j[t]] = (v[j[t]]*d[t])/x;
		}
	
	for(t = 1; t <= m; t++)
		{
			x = cmmdc(v[i[t]], v[j[t]]);
			if(x != d[t]) {fprintf(g, "-1\n"); fclose(g); return 0;}
		}
		
	for(t = 1; t <= n; t++)
		fprintf(g, "%lld ", v[t]);
	fprintf(g, "\n");
		
	fclose(f);
	fclose(g);
	return 0;
}