Cod sursa(job #2866708)

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

long long v[10004];

long long v2[3][100004];

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

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



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

  for(i=0;i<k;i++){
    fscanf(fin,"%lld%lld%lld",&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(v[v2[0][i]],v[v2[1][i]])==v2[2][i]){
      s=1;
    }
  }

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

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