Pagini recente » Istoria paginii runda/trainingtsa/clasament | Autentificare | Arhiva de probleme | Cod sursa (job #573645) | Cod sursa (job #334549)
Cod sursa(job #334549)
#include<stdio.h>
#define dim 100001
using namespace std;
long v[dim],e[dim],r[dim],t[dim];
int n,i,m,s,d;
int cmmdc(int x,int y)
{
s=1;
while (s!=0)
{s=x%y;
if (s!=0)
{x=y;
y=s;}
else
x=y;
}
return x;
}
int main()
{
FILE *f=fopen("oz.in","r"), *g=fopen("oz.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
v[i]=1;
for(i=1;i<=m;i++)
{
fscanf(f,"%ld%ld%ld",&e[i],&r[i],&t[i]);
d=cmmdc(v[e[i]],t[i]);
v[e[i]]=(v[e[i]]*t[i])/d;
d=cmmdc(v[r[i]],t[i]);
v[r[i]]=(v[r[i]]*t[i])/d;
}
for(i=1;i<=m;i++)
{
d=cmmdc( v[ e[i] ], v[ r[i] ] );
if(d!=t[i])
{fprintf(g,"-1\n");
fclose(f);
fclose(g);
return 0;}
}
for(i=1;i<=n;i++)
fprintf(g,"%ld ",v[i]);
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;}