Pagini recente » Cod sursa (job #1203760) | Cod sursa (job #871997) | Cod sursa (job #1043419) | Cod sursa (job #1346094) | Cod sursa (job #937251)
Cod sursa(job #937251)
#include <fstream>
#define LL long long
#define Max_Size 10009
#define MAX_Size_M 100009
using namespace std;
ifstream f("oz.in"); ofstream g("oz.out");
int N, M;
LL A[Max_Size];
struct obj {
int a;
int b;
LL d;
} T[MAX_Size_M];
inline LL Cmmdc(LL a, LL b) {
LL r = 1;
while(r) {
r = a % b;
a = b;
b = r;
}
return a;
}
inline LL Cmmmc(LL a, LL b) {
return (a * b) / Cmmdc(a, b);
}
inline bool verif() {
for(int i = 1; i <= M; ++i)
if(Cmmdc(A[T[i].a], A[T[i].b]) != T[i].d) return false;
return true;
}
int main() {
f >> N >> M;
for(int i = 1; i <= M; ++i) {
f >> T[i].a >> T[i].b >> T[i].d;
if(A[T[i].a])
A[T[i].a] = Cmmmc(A[T[i].a], T[i].d);
else
A[T[i].a] = T[i].d;
if(A[T[i].b])
A[T[i].b] = Cmmmc(A[T[i].b], T[i].d);
else
A[T[i].b] = T[i].d;
}
bool ok = verif();
if(!ok) g << -1;
else
for(int i = 1; i <= N; ++i) g << (A[i] ? A[i] : 1) << ' ';
g << '\n';
g.close();
return 0;
}