Pagini recente » Cod sursa (job #1507184) | Cod sursa (job #1027624) | Cod sursa (job #1418355) | Cod sursa (job #336146) | Cod sursa (job #2859310)
#include <cstdio>
#define int64 long long
#define CONST 2000000000
using namespace std;
FILE *fin, *fout;
#define NMAX 10000
int64 v[NMAX + 5];
int n;
void set_vector()
{
for(int i = 1; i <= n; i++)
v[i] = 1;
}
int64 cmmdc(int64 a, int64 b)
{
int64 r;
while(b)
{
r = a % b;
a = b;
b = r;
}
return a;
}
void query(int i, int j, int64 d)
{
if(v[i] == 1)
v[i] *= d;
else
v[i] *= (d / cmmdc(v[i], d));
if(v[j] == 1)
v[j] *= d;
else
v[j] *= d / (cmmdc(v[j], d));
}
int main()
{
fin = fopen("oz.in", "r");
fout = fopen("oz.out", "w");
int m;
fscanf(fin, "%d%d", &n, &m);
set_vector();
int i, j, d;
while(m)
{
fscanf(fin, "%d%d%d", &i, &j, &d);
query(i, j, d);
m--;
}
bool ok = true;
for(int i = 1; i <= n; i++)
if(v[i] > CONST)
ok = false;
if(ok == false)
{
fprintf(fout, "-1");
return 0;
}
for(int i = 1; i <= n; i++)
fprintf(fout, "%lld ", v[i]);
fclose(fin);
fclose(fout);
return 0;
}