Cod sursa(job #302797)

Utilizator Ionut_infoNicoara Ionut Ionut_info Data 9 aprilie 2009 12:10:50
Problema Oz Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
FILE *in=fopen("oz.in","r");
FILE *out=fopen("oz.out","w");
int main()
{
long int n,m,i,a[10000],b[10000],c[10000],v[10000],ok,p,j,q1,q2,q3;
fscanf(in,"%ld",&n);
fscanf(in,"%ld",&m);
for(i=0;i<=100;i++) v[i]=a[i]=b[i]=c[i]=0;
for(i=1;i<=n;i++) v[i]=1;
for(i=1;i<=m;i++)
	{
	fscanf(in,"%ld",&a[i]);
	fscanf(in,"%ld",&b[i]);
	fscanf(in,"%ld",&c[i]);
	}
ok=0;i=1;
while(ok==0)
	{
	for(i=1;i<=m;i++)
	{
	while(v[a[i]]%c[i]!=0||v[b[i]]%c[i]!=0)
		{
		if(v[a[i]]%c[i]!=0)
			v[a[i]]+=c[i];
		if(v[b[i]]%c[i]!=0)
			v[b[i]]+=c[i];
		}
	}
	p=1;
	for(j=1;j<=m&&p==1;j++)
		{
		q1=v[a[j]];q2=v[b[j]];
		while(q2!=0)
			{
			q3=q1%q2;
			q1=q2;
			q2=q3;
			}
		if(q1==1) p=0;
		}
	if(p==1) ok=1;
	}
for(i=1;i<=n;i++) fprintf(out,"%ld ",v[i]);
return 0;
}