Pagini recente » Cod sursa (job #2334763) | Cod sursa (job #3222786) | Cod sursa (job #2243024) | Cod sursa (job #580117) | Cod sursa (job #2823553)
#include <iostream>
#include <fstream>
#include <vector>
#define int long long
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
struct cerinta{
int a, b, d;
};
int gcd(int a, int b){
while(b > 0){
int r = a % b;
a = b;
b = r;
}
return a;
}
int gcm(int a, int b){
return a * b / gcd(a, b);
}
signed main(){
int n, m;
fin >> n >> m;
vector <cerinta> cerinte;
vector <int> v(n + 1, 1);
for(int mc = 1; mc <= m; mc++){
int i, j, d;
fin >> i >> j >> d;
cerinte.push_back({i, j, d});
v[i] = gcm(v[i], d);
v[j] = gcm(v[j], d);
}
for(auto vec : cerinte){
if(gcd(v[vec.a], v[vec.b]) != vec.d){
fout << -1;
return 0;
}
}
for(int i = 1; i <= n; i++) fout << v[i] << " ";
return 0;
}