Cod sursa(job #3189153)

Utilizator Andrei_IonIon Andrei Andrei_Ion Data 4 ianuarie 2024 16:15:26
Problema Oz Scor 10
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>
#include <stdlib.h>
#define MAXN 10000
#define MAXM 100000
long long v[MAXN];
int j[MAXM], j1[MAXM], d[MAXM];

long long cmmdc( long long a, long long b ){
  while( b > 0 ){
    long long r = a % b;
    a = b;
    b = r;
  }
  return a;
}
int main()
{
    FILE *fin, *fout;
    int n, m, i, st;
    long long x;
    fin = fopen("oz.in", "r");
    fout = fopen("oz.out", "w");

    fscanf(fin, "%d%d", &n, &m);
    for( i = 0; i < n; i++ )
      v[i] = 1LL;
    st = 0;
    for( i = 0; i < m; i++ ){
      fscanf(fin, "%d%d%d", &j[i], &j1[i], &d[i]);
      v[--j[i]] *= d[i];
      v[--j1[i]] *= d[i];
    }

    for(i = 0; i < m; i++){
      if(cmmdc(v[j[i]], v[j1[i]]) != d[i])
        st = 1;
    }
    if(st){
      fprintf(fout, "-1");
    }
    else{
      for(i = 0; i < n; i++)
        fprintf(fout, "%lld ", v[i]);
    }
    fputc('\n', fout);
    fclose(fin);
    fclose(fout);
    return 0;
}