Pagini recente » Cod sursa (job #504354) | Cod sursa (job #436404) | Cod sursa (job #504357) | Cod sursa (job #2747122) | Cod sursa (job #2485998)
#include <fstream>
#define int long long
using namespace std;
ifstream in("oz.in");
ofstream out("oz.out");
int cmmdc(int a,int b) {
int r,cb=b,ca=a;
while(b) {
r=a%b;
a=b;
b=r;
}
return a;
}
int cmmmc(int a,int b) {
int r,cb=b,ca=a;
while(b) {
r=a%b;
a=b;
b=r;
}
return 1LL*ca*cb/a;
}
struct nugarel {
int nu,ga,rel;
};
nugarel w[10001];
int v[10001];
int32_t main() {
int n,m,i,a,b,d;
in>>n>>m;
for(i=1; i<=n; i++)
v[i]=1;
for(i=1; i<=m; i++) {
in>>a>>b>>d;
v[a]=v[a]*d/cmmdc(v[a],d);
v[b]=v[b]*d/cmmdc(v[b],d);
w[i].nu=a;
w[i].ga=b;
w[i].rel=d;
}
for(int a=1; a<=n; a++) {
if(v[a]>2e9||v[a]<0) {
out<<-1;
return 0;
}
}
for(i=1; i<=m; i++) {
if(cmmdc(v[w[i].nu],v[w[i].ga])!=w[i].rel) {
out<<-1;
return 0;
}
}
for(i=1; i<=n; i++) {
out<<v[i]<<' ';
}
return 0;
}