Cod sursa(job #1215922)

Utilizator BLz0rDospra Cristian BLz0r Data 2 august 2014 18:40:45
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<cstdio>
using namespace std;

FILE *f=fopen ("oz.in","r");
FILE *g=fopen ("oz.out","w");

int vsol[10005],x[100005],y[100005],d[100005];
 
int cmmdc(int a,int b){
    int r;
	while (b){
		r=a%b;
		a=b;
		b=r;
	}
	return a;
}
 
int main(){
    int n,m;
	
	fscanf (f,"%d%d",&n,&m);
	
    for(int i=1;i<=n;++i) vsol[i]=1;
 
    for(int i=1;i<=m;++i){
		fscanf (f,"%d%d%d",&x[i],&y[i],&d[i]);
        vsol[x[i]]*=(d[i]/cmmdc(vsol[x[i]],d[i]));
        vsol[y[i]]*=(d[i]/cmmdc(vsol[y[i]],d[i]));
    }
 
    for(int i=1;i<=m;++i) {
        if(cmmdc(vsol[x[i]],vsol[y[i]])!=d[i]){
			fprintf (g,"-1\n");
            return 0;
        }
    }
 
    for(int i=1;i<=n;++i) fprintf (g,"%d ",vsol[i]);
	
    return 0;
}