Cod sursa(job #2866686)

Utilizator mmocanuMocanu Mihai-Adrian mmocanu Data 9 martie 2022 21:44:22
Problema Oz Scor 5
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
#include <stdlib.h>

int v[10004];

int v2[3][100004];

int cmmdc(int a,int b){
  int aux;

  if(b==0){
    return a;
  }
  aux=a%b;
  a=b;
  b=aux;
  return cmmdc(a,b);
}



int main(){
  int n,k,i,x,y,d,s;
  FILE *fin,*fout;
  fin=fopen("oz.in","r");
  fout=fopen("oz.out","w");
  fscanf(fin,"%d%d",&n,&k);

  for(i=0;i<k;i++){
    fscanf(fin,"%d%d%d",&x,&y,&d);
    v2[0][i]=x;
    v2[1][i]=y;
    v2[2][i]=y;
    if(v[x]==0){
      v[x]=d;
    }else{
      v[x]=(v[x]*d)/cmmdc(v[x],d);
    }
    if(v[y]==0){
      v[y]=d;
    }else{
      v[y]=(v[y]*d)/cmmdc(v[y],d);
    }
  }

  s=0;
  for(i=0;i<k;i++){
    if(cmmdc(v2[0][i],v2[1][i])==v2[2][i]){
      s=1;
    }
  }

  if(s==0){
    for(i=1;i<=n;i++){
      fprintf(fout,"%d ",v[i]);
    }
  }else{
    fprintf(fout,"-1");
  }

  fclose(fin);
  fclose(fout);
  return 0;
}