Pagini recente » Cod sursa (job #2316638) | Profil SpiriFlaviu | Cod sursa (job #1124825) | Cod sursa (job #3240045) | Cod sursa (job #473672)
Cod sursa(job #473672)
#include <fstream>
using namespace std;
long long a[10100];
int n,m;
int gcd(int x, int y) {
if (y == 0)
return x;
return gcd(y, x % y);
}
int qi[100100];
int qj[100100];
int qk[100100];
int qn;
int main() {
ifstream fin("oz.in");
ofstream fout("oz.out");
fin >> n >> m;
for (int i = 1; i <= n; ++i)
a[i] = 1;
while (m--) {
int i,j,k;
fin >> i >> j >> k;
++qn;
qi[qn] = i;
qj[qn] = j;
qk[qn] = k;
a[i] = a[i]*k / gcd(a[i], k);
a[j] = a[j]*k / gcd(a[j], k);
if (gcd(a[i], a[j]) != k) {
fout << "-1\n";
fout.close();
return 0;
}
if (a[i] > 2000000000) {
fout << "-1\n";
fout.close();
return 0;
}
if (a[j] > 2000000000) {
fout << "-1\n";
fout.close();
return 0;
}
}
m = qn;
while (m--) {
int i,j,k;
i = qi[qn];
j = qj[qn];
k = qk[qn];
a[i] = a[i]*k / gcd(a[i], k);
a[j] = a[j]*k / gcd(a[j], k);
if (gcd(a[i], a[j]) != k) {
fout << "-1\n";
fout.close();
return 0;
}
if (a[i] > 2000000000) {
fout << "-1\n";
fout.close();
return 0;
}
if (a[j] > 2000000000) {
fout << "-1\n";
fout.close();
return 0;
}
}
for (int i = 1; i <= n; ++i) {
if (a[i] > 2000000000) {
fout << "-1\n";
fout.close();
return 0;
}
}
for (int i = 1; i < n; ++i)
fout << a[i] << " ";
fout << a[n] << "\n";
fout.close();
return 0;
}