Cod sursa(job #679455)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 13 februarie 2012 11:54:24
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<cstdio>
#define M 2000000000
#define N 10001
int n,m,i,d[10*N],t,a[10*N],b[10*N];
long long v[N];
int C(int a,int b)
{if(!b)
      return a;
return C(b,a%b);}
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,"%d%d%d",&a[i],&b[i],&d[i]);
     v[a[i]]=(v[a[i]]*d[i])/C(v[a[i]],d[i]);
     v[b[i]]=(v[b[i]]*d[i])/C(v[b[i]],d[i]);}
for(i=1;i<=m&&!t;i++)
if(C(v[a[i]],v[b[i]])!=d[i])
     t=1;
if(!t)
     for(i=1;i<=n;i++)
            fprintf(g,"%d ",v[i]);
else
     fprintf(g,"-1");
return 0;}