Pagini recente » Cod sursa (job #2209136) | Cod sursa (job #2161440) | Cod sursa (job #1664259) | Cod sursa (job #671879) | Cod sursa (job #3120692)
#include <fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
long long v[10005];
const long long LIM = 2000000000;
struct divz {
short poz1, poz2;
int cmmdivc;
}
w[100005];
int cmmdc(int a, int b)
{
while (b) {
int r = a%b;
a = b;
b = r;
}
return a;
}
int cmmmc(int a, int b)
{
return a/cmmdc(a, b)*b;
}
int main()
{
short n, i, j;
int m, d;
fin>>n>>m;
for (short i = 1; i <= n; i++) {
v[i] = 1;
}
for (int i = 1; i <= m; i++) {
fin>>w[i].poz1>>w[i].poz2>>w[i].cmmdivc;
v[w[i].poz1] = cmmmc(v[w[i].poz1], w[i].cmmdivc);
v[w[i].poz2] = cmmmc(v[w[i].poz2], w[i].cmmdivc);
if (v[i] > LIM || v[j] > LIM || v[i] < 0 || v[j] < 0) {
fout<<-1;
return 0;
}
}
for (int i = 1; i <= m; i++) {
if (cmmdc(v[w[i].poz1], v[w[i].poz2]) != w[i].cmmdivc) {
fout<<-1;
return 0;
}
}
for (short i = 1; i <= n; i++) {
if (v[i] > LIM) {
fout<<-1;
return 0;
}
}
for (short i = 1; i <= n; i++) {
fout<<v[i]<<' ';
}
return 0;
}