Pagini recente » Diferente pentru blog/viata-dupa-olimpiade-3 intre reviziile 2 si 7 | Monitorul de evaluare | Istoria paginii runda/49maimare48 | Monitorul de evaluare | Cod sursa (job #190056)
Cod sursa(job #190056)
#include <stdio.h>
#define Mmax 100001
#define Nmax 10001
#define IN "oz.in"
#define OUT "oz.out"
int n,m;
int v[Nmax];
struct pers{int ii,jj,dd;};
pers per[Mmax];
int cmmdc (int x,int y)
{
if(!y)
return x;
return cmmdc(y,x%y);
}
int cmmmc(int x,int y)
{
int cd=cmmdc(x,y);
return x*(y/cd);
}
void scan()
{
freopen(IN, "r",stdin);
freopen(OUT, "w",stdout);
scanf("%d%d", &n,&m);
for(int k=1;k<=n;++k)
v[k]=1;
for(int k=1;k<=m;++k)
{
scanf("%d%d%d", &per[k].ii,&per[k].jj,&per[k].dd);
v[per[k].ii]=cmmmc(v[per[k].ii],per[k].dd);
v[per[k].jj]=cmmmc(v[per[k].jj],per[k].dd);
}
}
void check()
{
//for(int k=1;k<=m;++k)
// if( cmmdc(v[per[k].ii],v[per[k].jj]) != per[k].dd )
// {
// printf("-1\n");
// return;
// }
for(int i=1;i<=n;++i)
printf("%d ",v[i]);
}
int main()
{
scan();
check();
return 0;
}