Cod sursa(job #919086)

Utilizator apopeid13Apopeid Alejandro apopeid13 Data 19 martie 2013 12:56:00
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
struct str{int x,y,z;} u[100001];
int v[10001];
int cmmdc(int x,int y){if (x) return cmmdc(y%x,x);else return y;}
int main()
{
int n,m,i;
freopen("oz.in","r",stdin);
freopen("oz.out","w",stdout);
scanf("%d %d\n",&n,&m);
for (i=1;i<=n;++i)
v[i]=1;
for (i=1;i<=m;++i)
{
scanf("%d %d %d\n",&u[i].x,&u[i].y,&u[i].z);
v[u[i].x]=v[u[i].x]/cmmdc(v[u[i].x],u[i].z)*u[i].z;
v[u[i].y]=v[u[i].y]/cmmdc(v[u[i].y],u[i].z)*u[i].z;
}
for (i=1;i<=m;++i)
if (cmmdc(v[u[i].x],v[u[i].y])!=u[i].z)
{
printf("-1\n");
return 0;
}
for (i=1;i<=n;++i)
printf("%d ",v[i]);
printf("\n");
return 0;
}