Pagini recente » Cod sursa (job #2320360) | Cod sursa (job #63106) | Cod sursa (job #652637) | Cod sursa (job #2527223) | Cod sursa (job #555303)
Cod sursa(job #555303)
#include <stdio.h>
#define MA 100001
using namespace std;
typedef struct {long a,b,d;} TRIPLET;
TRIPLET A[MA];
int n,m;
long REZ[11001];
FILE *f,*g;
void citire()
{
int i;
fscanf(f,"%d %d",&n,&m);
for (i=1;i<=m;++i)
fscanf(f,"%ld %ld %ld",&A[i].a,&A[i].b,&A[i].d);
}
int cmmdc(int a, int b)
{
int r;
r=a%b;
while (r!=0)
{
a=b;
b=r;
r=a%b;
}
return b;
}
int cmmmc(int a, int 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,"%ld ",REZ[i]);
else
fprintf(g,"%d",-1);
}
int main()
{
f=fopen("oz.in","r");
g=fopen("oz.out","w");
citire();
solve();
fclose(f);
fclose(g);
return 0;
}