Cod sursa(job #334554)

Utilizator bugyBogdan Vlad bugy Data 27 iulie 2009 12:03:36
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>
#define dim 100002
using namespace std;
long long v[dim],e[dim],r[dim],t[dim];
long  n,i,m,s,d;

int cmmdc(long x,long y)
{
 s=1;   
      while (s!=0)   
    {s=x%y;   
         if (s!=0)   
     {x=y;   
     y=s;}   
     else  
     x=y;
	}
return x;
}

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

return 0;}