Pagini recente » Cod sursa (job #409671) | Cod sursa (job #2841536) | Cod sursa (job #1520399) | Istoria paginii warm-up-2019/solutii/shoturi | Cod sursa (job #2189549)
#include <fstream>
using namespace std;
ifstream cin ("oz.in");
ofstream cout ("oz.out");
const int nmax = 100001;
int n, m;
bool notOk;
int a[1 + nmax], b[1 + nmax], d[1 + nmax];
long long v[1 + nmax];
long long cmmdc(long long a, long long b) {
long long r;
while(b) {
r = a % b;
a = b;
b = r;
}
return a;
}
int main() {
cin >> n >> m;
for(int i = 1; i <= n; i++)
v[i] = 1;
for(int i = 1; i <= m; i++) {
cin >> a[i] >> b[i] >> d[i];
v[a[i]] = v[a[i]] * d[i] / cmmdc(v[a[i]], d[i]);
v[b[i]] = v[b[i]] * d[i] / cmmdc(v[b[i]], d[i]);
}
for(int i = 1; i <= m; i++)
if(cmmdc(v[a[i]], v[b[i]]) != d[i])
notOk = 1;
if(notOk == 0) {
for(int i = 1; i <= n; i++)
cout << v[i] << " ";
} else
cout << -1;
return 0;
}