Pagini recente » Cod sursa (job #447633) | Cod sursa (job #64372) | Cod sursa (job #2766853) | Cod sursa (job #861448) | Cod sursa (job #1669848)
#include <cstdio>
#include <algorithm>
using namespace std;
long long v[10005];
pair <pair<int,int>,int> w[100005];
int cmmdc (int a,int b){
int r;
while (b>0){
r=a%b;
a=b;
b=r;
}
return a;
}
int main()
{
FILE *fin=fopen ("oz.in","r");
FILE *fout=fopen ("oz.out","w");
int n,m,i,x,y,dc;
fscanf (fin,"%d%d",&n,&m);
for (i=1;i<=n;i++)
v[i]=1;
for (i=1;i<=m;i++){
fscanf (fin,"%d%d%d",&x,&y,&dc);
v[x]*=dc/cmmdc (v[x],dc);
v[y]*=dc/cmmdc (v[y],dc);
w[i].first.first=x;
w[i].first.second=y;
w[i].second=dc;
}
for (i=1;i<=m;i++){
x=w[i].first.first;
y=w[i].first.second;
dc=w[i].second;
if (cmmdc (v[x],v[y])!=dc){
fprintf (fout,"-1");
return 0;
}
}
for (i=1;i<=n;i++)
fprintf (fout,"%lld ",v[i]);
return 0;
}