Pagini recente » Cod sursa (job #1202286) | Cod sursa (job #454174) | Cod sursa (job #2887406) | Cod sursa (job #1959521) | Cod sursa (job #169575)
Cod sursa(job #169575)
#include <stdio.h>
long m,n,i,j,d,h,v[10001],ok;
long long x,y;
FILE *f1,*f2;
long long cmmdc(long long a, long long b)
{
long long r;
do{
r=a%b;
a=b;
b=r;
}while (r!=0);
return a;
}
int main()
{
long a[100001][3];
f1=fopen("oz.in","r");
f2=fopen("oz.out","w");
fscanf(f1,"%ld",&n);
fscanf(f1,"%ld",&m);
for(h=1;h<=n;h++)
{
v[h]=1;
}
ok=1;
for(h=1;h<=m;h++)
{
fscanf(f1,"%ld",&i);
fscanf(f1,"%ld",&j);
fscanf(f1,"%ld",&d);
a[h][0]=i;
a[h][1]=j;
a[h][2]=d;
// cmmmc
x=(v[i])*d/cmmdc(v[i],d);
y=(v[j])*d/cmmdc(v[j],d);
if (x>2000000000 || y>2000000000) {
ok=0; break;
}
else { v[i]=x; v[j]=y;
}
}
fclose(f1);
if (ok) {
for (h=1;h<=m;h++)
if (cmmdc(v[a[h][0]],v[a[h][1]])!=a[h][2]) {
ok=0;
break;
}
}
if (!ok) fprintf(f2,"-1");
else for(h=1;h<=n;h++)
{
fprintf(f2,"%ld ",v[h]);
}
fclose(f2);
return 0;
}