Pagini recente » Cod sursa (job #780710) | Cod sursa (job #3147919) | Cod sursa (job #843861) | Cod sursa (job #1429185) | Cod sursa (job #718785)
Cod sursa(job #718785)
#include<fstream>
using namespace std;
int n,m;
long long v[10100],A[100100],B[100100],Div[100100];
bool ok=true;
inline long long Cmmdc(long long A,long long B)
{
long long r;
while(B)
{
r=A%B;
A=B;
B=r;
}
return A;
}
void Citire_Rezolvare()
{
int i;
long long cmmdc;
ifstream fin("oz.in");
fin>>n>>m;
for(i=1;i<=n;i++)
v[i]=1LL;
for(i=1;i<=m;i++)
{
fin>>A[i]>>B[i]>>Div[i];
cmmdc=Cmmdc(v[A[i]],Div[i]);
v[A[i]]=(v[A[i]]*Div[i])/cmmdc;
cmmdc=Cmmdc(v[B[i]],Div[i]);
v[B[i]]=(v[B[i]]*Div[i])/cmmdc;
}
}
void Verificare()
{
int i;
long long cmmdc;
for(i=1;i<=m;i++)
{
cmmdc=Cmmdc(v[A[i]],v[B[i]]);
if(cmmdc!=Div[i])
{
ok=false;
return;
}
}
}
void Afisare()
{
ofstream fout("oz.out");
if(ok==false)
fout<<"-1"<<"\n";
else
{
int i;
for(i=1;i<=n;i++)
fout<<v[i]<<' ';
fout<<"\n";
}
fout.close();
}
int main()
{
Citire_Rezolvare();
Verificare();
Afisare();
return 0;
}