Cod sursa(job #521568)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 12 ianuarie 2011 20:38:11
Problema Oz Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <stdio.h>
#define MAXM 10001
using namespace std;
FILE *f=fopen("oz.in","r");
FILE *g=fopen("oz.out","w");
typedef unsigned long long ulong;
int n,m;
ulong v[MAXM];
ulong a[4][MAXM];

/*ulong  cmmdc(ulong a,ulong b){
	ulong a1=a,b1=b,r;
	r=a1%b1;
	while(r!=0){
		a1=b1;
		b1=r;
		r=a1%b1;
	}
	return b1;
}

ulong cmmmc(ulong a,ulong b){
	return a*b/cmmdc(a,b);
}*/

bool ver(){
	int register i,x,y;
	ulong d;
	for(i=1;i<=m;i++){
		x=a[1][i];
		y=a[2][i];
		d=a[3][i];
		//if(cmmdc(v[x],v[y])!=d){
			//return false;
		//}
	}
	for(i=1;i<=m;i++){
		if(v[i]>2000000000)
			return false;
	}
	return true;
}

int main(void){
	int register i,j;
	
	fscanf(f,"%d %d",&n,&m);
	int register x,y;
	ulong d;
	
	for(i=1;i<=n;i++)
		v[i]=1;
	
	for(i=1;i<=m;i++){
		fscanf(f,"%d %d %lld",&x,&y,&d);
	//	v[x]*=cmmmc(d,v[x]);
		//v[y]*=cmmmc(d,v[y]);
		//a[1][i]=x;
		//a[2][i]=y;
		//a[3][i]=d;
	}	
	fclose(f);
	
	if(ver()){
		for(i=1;i<=n;i++){
			fprintf(g,"%lld ",v[i]);
		}
		fclose(g);
		return 0;
	}
	fprintf(g,"-1");
	fclose(g);
	return 0;
}