Pagini recente » Cod sursa (job #1848676) | Cod sursa (job #1741122) | Cod sursa (job #2672223) | Cod sursa (job #3288254) | Cod sursa (job #2806505)
#include <fstream>
#define NMAX 10005
#define LIMIT 2000000000
using namespace std;
ifstream f("oz.in");
ofstream g("oz.out");
long long n, m;
long long v[NMAX], add[NMAX];
pair <long long, long long> x[NMAX];
long long cmmdc(long long a, long long b) {
long long r = 0;
while (b) {
r = a % b;
a = b;
b = r;
}
return a;
}
long long cmmmc(long long a, long long b) {
return a * b / cmmdc(a, b);
}
int main()
{
f >> n >> m;
for (int i = 1; i <= n; i++)
v[i] = 1;
for (int i = 1; i <= m; i++) {
f >> x[i].first >> x[i].second >> add[i];
v[x[i].first] = cmmmc(v[x[i].first], add[i]);
v[x[i].second] = cmmmc(v[x[i].second], add[i]);
if (v[x[i].first] > LIMIT || v[x[i].second] > LIMIT) {
g << "-1";
return 0;
}
}
for (int i = 1; i <= m; i++) {
if (cmmdc(v[x[i].first], v[x[i].second]) != add[i]) {
g << "-1\n";
return 0;
}
}
for (int i = 1; i <= n; i++) {
g << v[i] << " ";
}
return 0;
}