Cod sursa(job #3135036)

Utilizator lensuLensu Alexandru lensu Data 1 iunie 2023 16:33:03
Problema Oz Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
#define ll long long

using namespace std;

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

vector<ll> v[10001];
ll a[10001],st[10001],dr[10001],d[10001];

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

int main()
{
	int n, k;
	cin >> n >> k;
	for (int i = 1; i <= k; i++)
	{
		cin >> st[i] >> dr[i] >> d[i];
		v[st[i]].push_back(d[i]);
		v[dr[i]].push_back(d[i]);
	}
	for (int i = 1; i <= n; i++)
	{
		a[i] = 1;
		for (int j = 0; j < v[i].size(); j++)
		{
			a[i] *= v[i][j];
			if (a[i] > 2e9)
			{
				cout << -1;
				return 0;
			}
		
		}
	}
	for (int i = 1; i <= k; i++)
	{
		if (cmmdc(a[st[i]], a[dr[i]]) != d[i])
		{
			cout << -1;
			return 0;
		}
	}
	for(int i = 1; i <= n; i++)
		cout << a[i] << ' ';
}