Pagini recente » Cod sursa (job #1951190) | Cod sursa (job #2660681) | Cod sursa (job #2962135) | Cod sursa (job #1483474) | Cod sursa (job #3032605)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
struct Element
{
int idx1, idx2, gcd;
};
const int NMAX = 1e4 + 5, MMAX = 1e5+5;
int n, m;
int ans[NMAX];
Element arr[MMAX];
inline void solution()
{
for(int i = 1; i <= n; ++ i)
ans[i] = 1;
bool ok = true;
for(int i = 1; i <= m; ++ i)
{
if(__gcd(ans[arr[i].idx1], ans[arr[i].idx2]) > arr[i].gcd)
{
ok = false;
}
else
{
if(__gcd(ans[arr[i].idx1], ans[arr[i].idx2]) == arr[i].gcd)
continue;
else
{
ans[arr[i].idx1] *= arr[i].gcd / __gcd(ans[arr[i].idx1], ans[arr[i].idx2]);
ans[arr[i].idx2] *= arr[i].gcd / __gcd(ans[arr[i].idx1], ans[arr[i].idx2]);
}
}
}
if(ok)
{
for(int i = 1; i <= n; ++ i)
fout << ans[i] << ' ';
}
else
{
cout << -1 << '\n';
}
}
int main()
{
ios::sync_with_stdio(false);
fin.tie(NULL);
fout.tie(NULL);
fin >> n >> m;
for(int i = 1; i <= m; ++ i)
{
fin >> arr[i].idx1 >> arr[i].idx2 >> arr[i].gcd;
}
solution();
}