Pagini recente » Cod sursa (job #1692229) | Cod sursa (job #690332) | Cod sursa (job #1613124) | Cod sursa (job #1220657) | Cod sursa (job #3120694)
#include <fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
typedef long long LL;
LL v[10005];
const LL LIM = 2000000000;
struct divz {
short poz1, poz2;
LL cmmdivc;
}
w[100005];
LL cmmdc(LL a, LL b)
{
while (b) {
LL r = a%b;
a = b;
b = r;
}
return a;
}
LL cmmmc(LL a, LL b)
{
return a/cmmdc(a, b)*b;
}
int main()
{
short n;
int m;
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[w[i].poz1] > LIM || v[w[i].poz2] > LIM) {
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;
}