Pagini recente » Cod sursa (job #131649) | Cod sursa (job #772533) | Cod sursa (job #1489889) | Cod sursa (job #1014474) | Cod sursa (job #555331)
Cod sursa(job #555331)
#include <stdio.h>
#define MA 101001
using namespace std;
typedef struct {long long a,b,d;} TRIPLET;
TRIPLET A[MA];
long long n,m;
long long REZ[11001];
FILE *f,*g;
void citire()
{
int i;
fscanf(f,"%lld %lld",&n,&m);
for (i=1;i<=m;++i)
fscanf(f,"%lld %lld %lld",&A[i].a,&A[i].b,&A[i].d);
}
int cmmdc(long long a, long long b)
{
long long r;
while (b>0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
int cmmmc(long long a, long long b)
{
return ((a*b)/cmmdc(a,b));
}
void solve()
{
int i,ok;
for (i=1;i<=n;++i)
REZ[i]=1;
for (i=1;i<=m;++i)
{
REZ[A[i].a]=cmmmc(REZ[A[i].a],A[i].d);
REZ[A[i].b]=cmmmc(REZ[A[i].b],A[i].d);
}
ok=1;
for (i=1;i<=m;++i)
if (cmmdc(REZ[A[i].a],REZ[A[i].b])!=A[i].d || REZ[A[i].a]>=2000000000 || REZ[A[i].b]>=2000000000)
{
ok=0;
break;
}
if (ok)
for (i=1;i<=n;++i)
fprintf(g,"%lld ",REZ[i]);
else
fprintf(g,"-1");
}
int main()
{
f=fopen("oz.in","r");
g=fopen("oz.out","w");
citire();
solve();
fclose(f);
fclose(g);
return 0;
}