Pagini recente » Cod sursa (job #3333006) | Cod sursa (job #3334901) | Cod sursa (job #357656) | Junior Challenge 2025 - Clasament Runda 1 | Cod sursa (job #3349901)
#include <fstream>
using namespace std;
ifstream cin("oz.in");
ofstream cout("oz.out");
long long v[10001];
bool ok[10001];
long long gcd(long long a, long long b)
{
while(b){ long long r=a%b; a=b; b=r; }
return a;
}
long long lcm(long long a, long long b)
{
return a/gcd(a,b)*b;
}
int ti[100001], tj[100001], td[100001];
int main()
{
long long n, m;
cin >> n >> m;
for(int h = 0; h < m; h++)
cin >> ti[h] >> tj[h] >> td[h];
for(int h = 0; h < m; h++)
{
int i=ti[h], j=tj[h], d=td[h];
if(ok[i]) v[i]=lcm(v[i],d);
else { v[i]=d; ok[i]=true; }
if(ok[j]) v[j]=lcm(v[j],d);
else { v[j]=d; ok[j]=true; }
}
for(int s = 1; s <= n; s++)
if(!ok[s]) v[s] = 1; // orice valoare, nu -1
for(int h = 0; h < m; h++)
if(gcd(v[ti[h]], v[tj[h]]) != td[h])
{ cout << -1; return 0; }
for(int s = 1; s <= n; s++)
cout << v[s] << " ";
return 0;
}