Pagini recente » Cod sursa (job #2652857) | Cod sursa (job #1131783) | Cod sursa (job #946678) | Cod sursa (job #160398) | Cod sursa (job #211634)
Cod sursa(job #211634)
#include<stdio.h>
#define NMAX 10000
#define MMAX 100000
#define MAX 2000000000L
struct trip{int x,y,z;};
int cmmdc(int a,int b){
int r=a%b;
while(r){
a=b;b=r;r=a%b;
}
return b;
}
int main(){
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
int n,m,f1,f2,dc,ok=1;
int i,j,v[NMAX+1];
trip w[MMAX+1];
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i) v[i]=1;
for(j=1;j<=m;++j)
scanf("%d%d%d",&w[j].x,&w[j].y,&w[j].z);
for(j=1;j<=m&&ok;++j){
dc=cmmdc(v[w[j].x],w[j].z);
f1=w[j].z/dc;v[w[j].x]*=f1;
if(v[w[j].x]>MAX||v[w[j].x]<0) ok=0;
dc=cmmdc(v[w[j].y],w[j].z);
f2=w[j].z/dc;v[w[j].y]*=f2;
if(v[w[j].y]>MAX||v[w[j].y]<0) ok=0;
}
if(ok)
for(i=1;i<=n;++i) printf("%d ",v[i]);
else printf("-1");
return 0;
}