Pagini recente » Monitorul de evaluare | Cod sursa (job #1459894) | Cod sursa (job #2814525) | Cod sursa (job #2841732) | Cod sursa (job #2497468)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
struct chestie
{
long long x, y, d;
} v[10005];
long long cmmmc[100005];
int main()
{
int n, m;
fin >> n >> m;
for(int i = 1; i <= n; ++i)
cmmmc[i] = 1;
for(int i = 1; i <= m; ++i)
{
fin >> v[i].x >> v[i].y >> v[i].d;
cmmmc[v[i].x] = (cmmmc[v[i].x] * v[i].d) / __gcd(cmmmc[v[i].x], v[i].d);
cmmmc[v[i].y] = (cmmmc[v[i].y] * v[i].d) / __gcd(cmmmc[v[i].y], v[i].d);
if(cmmmc[v[i].x] > 2000000000 || cmmmc[v[i].y] > 2000000000){
fout << -1 << '\n';
return 0;
}
}
for(int i = 1; i <= m; ++i)
if(__gcd(cmmmc[v[i].x], cmmmc[v[i].y]) != v[i].d)
{
fout << -1 << '\n';
return 0;
}
for(int i = 1; i <= n; ++i)
fout << cmmmc[i] << ' ';
fout << '\n';
return 0;
}