Pagini recente » Cod sursa (job #743994) | Cod sursa (job #702023) | Cod sursa (job #2523435) | Cod sursa (job #1556641) | Cod sursa (job #163582)
Cod sursa(job #163582)
#include <stdio.h>
int a[10010];
int ok=1,i,k,n,m,p,q,d;
FILE *f1,*f2;
int cmmdc(int p, int q)
{
int a=p,b=q,r;
while (a%b!=0)
{
r=a%b;
a=b;
b=r;
}
return b;
}
int main()
{
f1=fopen("oz.in","r");
f2=fopen("oz.out","w");
fscanf(f1,"%d %d",&n,&m);
for (i=1; i<=n; i++) a[i]=1;
ok=1;
for (i=1; i<=m; i++)
{
fscanf(f1,"%d %d %d",&p,&q,&d);
if (a[q]%d!=0)
{
k=cmmdc(a[q],d);
if ((long long)a[q]*(d/k)>2000000000)
{
ok=0;
break;
}
a[q]=a[q]*(d/k);
}
if (a[p]%d!=0)
{
k=cmmdc(a[p],d);
if ((long long)a[p]*(d/k)>2000000000)
{
ok=0;
break;
}
a[p]=a[p]*(d/k);
}
}
//verificare
fclose(f1);
f1=fopen("oz.in","r");
fscanf(f1,"%d %d",&n,&m);
for (i=1; i<=m; i++)
{
fscanf(f1,"%d %d %d",&p,&q,&d);
if (cmmdc(a[p],a[q])!=d)
{
ok=0;
break;
}
}
if (ok)
for (i=1; i<=n; i++)
fprintf(f2,"%d ",a[i]);
else fprintf(f2,"-1\n");
fclose(f1);
fclose(f2);
return 0;
}