Cod sursa(job #3241027)

Utilizator divadddDavid Curca divaddd Data 25 august 2024 00:48:44
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e4+2;
using ull = unsigned long long;
using tii = tuple<int, int, ull>;
int n,m;
ull a[NMAX];
vector<ull> v[NMAX];
vector<tii> conditi;

ifstream fin("oz.in");
ofstream fout("oz.out");

ull lcm(ull a, ull b){
  return  a * (b / __gcd(a, b));
}

int main()
{
  fin >> n >> m;
  while(m--){
    int i, j;
    ull d;
    fin >> i >> j >> d;
    v[i].push_back(d);
    v[j].push_back(d);
    conditi.push_back({i, j, d});
  }
  for(int i = 1; i <= n; i++){
    a[i] = 1;
  }
  for(int i = 1; i <= n; i++){
    for(ull d: v[i]){
      a[i] = lcm(a[i], d);
    }
  }
  for(auto [i, j, d]: conditi){
    if(__gcd(a[i], a[j]) != d){
      fout << "-1";
      exit(0);
    }
  }
  for(int i = 1; i <= n; i++){
    fout << a[i] << " ";
  }
  return 0;
}