Pagini recente » Cod sursa (job #1631918) | Cod sursa (job #1586055) | Cod sursa (job #2849581) | Cod sursa (job #2169749) | Cod sursa (job #2414675)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
long long n,m,i,j,k,d,v[10001],x;
struct c{
int i;
int j;
int d;
} M[100001];
inline long long cmmdc(long long a, long long b){
while(b!=0){
a=a%b;
swap(a,b);
}
return a;
}
bool cmp(const c &a, const c &b){
return a.d<b.d;
}
int main(){
fin>>n>>m;
for(i=1;i<=n;i++)
v[i]=1;
for(k=1;k<=m;k++)
fin>>M[k].i>>M[k].j>>M[k].d;
sort(M+1,M+m+1,cmp);
for(;m;m--){
i=M[m].i;
j=M[m].j;
d=M[m].d;
x=cmmdc(v[i],v[j]);
if(d%x!=0){
fout<<-1;
return 0;
}
v[i]*=d/cmmdc(d,v[i]);
v[j]*=d/cmmdc(d,v[j]);
}
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}