Cod sursa(job #168056)

Utilizator perticas_catalinperticas catalin perticas_catalin Data 30 martie 2008 17:33:11
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
FILE*fin=fopen("oz.in","r");
FILE*fout=fopen("oz.out","w");
int s[10001];
int cmmdc(int a,int b)
{
  if(b!=0) return cmmdc(b,a%b);
  return a;
}
int main()
{
  int i,j,k,n,m,d,dd;
  fscanf(fin,"%d%d",&n,&m);
  for(i=1;i<=n;i++)
    s[i]=1;
  for(k=1;k<=m;k++)
  {
    fscanf(fin,"%d%d%d",&i,&j,&d);
    dd=cmmdc(d,s[i]);
    s[i]=d*s[i]/dd;
    dd=cmmdc(d,s[j]);
    s[j]=d*s[j]/dd;
  }
  fclose(fin);
  FILE*fin=fopen("oz.in","r");
  fscanf(fin,"%d%d",&n,&m);
  for(k=1;k<=m;k++)
  {
    fscanf(fin,"%d%d%d",&i,&j,&d);
    dd=cmmdc(s[i],s[j]);
    if(dd!=d)
    {
      fprintf(fout,"-1\n");
      fclose(fin);
      fclose(fout);
      return 0;
    }
  }
  fclose(fin);
  for(i=1;i<=n;i++)
    fprintf(fout,"%d%c",s[i],' ');
  fclose(fout);
  return 0;
}