Cod sursa(job #2189549)

Utilizator lucametehauDart Monkey lucametehau Data 28 martie 2018 16:32:33
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;

ifstream cin ("oz.in");
ofstream cout ("oz.out");

const int nmax = 100001;

int n, m;
bool notOk;

int a[1 + nmax], b[1 + nmax], d[1 + nmax];
long long v[1 + nmax];

long long cmmdc(long long a, long long b) {
  long long r;
  while(b) {
    r = a % b;
    a = b;
    b = r;
  }
  return a;
}

int main() {
  cin >> n >> m;
  for(int i = 1; i <= n; i++)
    v[i] = 1;
  for(int i = 1; i <= m; i++) {
    cin >> a[i] >> b[i] >> d[i];
    v[a[i]] = v[a[i]] * d[i] / cmmdc(v[a[i]], d[i]);
    v[b[i]] = v[b[i]] * d[i] / cmmdc(v[b[i]], d[i]);
  }
  for(int i = 1; i <= m; i++)
    if(cmmdc(v[a[i]], v[b[i]]) != d[i])
      notOk = 1;
  if(notOk == 0) {
    for(int i = 1; i <= n; i++)
      cout << v[i] << " ";
  } else
    cout << -1;
  return 0;
}