Pagini recente » Cod sursa (job #685682) | Cod sursa (job #367371) | Cod sursa (job #2142660) | Cod sursa (job #2896407) | Cod sursa (job #3241027)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e4+2;
using ull = unsigned long long;
using tii = tuple<int, int, ull>;
int n,m;
ull a[NMAX];
vector<ull> v[NMAX];
vector<tii> conditi;
ifstream fin("oz.in");
ofstream fout("oz.out");
ull lcm(ull a, ull b){
return a * (b / __gcd(a, b));
}
int main()
{
fin >> n >> m;
while(m--){
int i, j;
ull d;
fin >> i >> j >> d;
v[i].push_back(d);
v[j].push_back(d);
conditi.push_back({i, j, d});
}
for(int i = 1; i <= n; i++){
a[i] = 1;
}
for(int i = 1; i <= n; i++){
for(ull d: v[i]){
a[i] = lcm(a[i], d);
}
}
for(auto [i, j, d]: conditi){
if(__gcd(a[i], a[j]) != d){
fout << "-1";
exit(0);
}
}
for(int i = 1; i <= n; i++){
fout << a[i] << " ";
}
return 0;
}