Pagini recente » Cod sursa (job #2349063) | Cod sursa (job #1921252) | Cod sursa (job #772744) | Cod sursa (job #591666) | Cod sursa (job #388717)
Cod sursa(job #388717)
# include <fstream>
# include <iostream>
# include <cstdlib>
using namespace std;
struct nod{
int i, d;
nod *next;};
int v[10003], n, m;
nod *a[10003];
void add (int i, int j, int d)
{
nod *p=new nod;
p->i=j;
p->d=d;
p->next=a[i];
a[i]=p;
}
void corecteaza (int p, int d)
{
if (d%v[p]==0)
v[p]=d;
else
v[p]*=d;
}
void read ()
{
ifstream fin ("oz.in");
fin>>n>>m;
for (int i=1;i<=n;i++)
v[i]=1;
int i, j, d;
for (int k=1;k<=m;k++)
{
fin>>i>>j>>d;
corecteaza (i, d);
corecteaza (j, d);
add(i, j, d);
add(j, i, d);
}
}
int cmmdc (int a, int b)
{
int r;
do{
r=a%b;
a=b;
b=r;
}
while (r);
return a;
}
int verifica ()
{
for (int i=1;i<=n;i++)
for (nod *p=a[i]; p ;p=p->next)
if (cmmdc(v[i], v[p->i])!=p->d)
return 0;
return 1;
}
void afis ()
{
ofstream fout ("oz.out");
for (int i=1;i<=n;i++)
fout<<v[i]<<" ";
}
int main ()
{
read ();
if (verifica())
afis ();
else
{
ofstream fout ("oz.out");
fout<<"-1";
}
return 0;
}