Cod sursa(job #1789213)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 26 octombrie 2016 19:41:02
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>
#include <iostream>
#include <queue>
#include <vector>
#include <fstream>
#include <algorithm>
#include <string>
#include <iomanip>
#include <cstring>
#include <map>
#include <iomanip>
#include <unordered_map>
#include <stack>
#include <bitset>
#define MOD 8192
#define pb push_back
#define INF 0x3f3f3f3f
#define ll long long
#define NMAX 100005
#define MMAX 2000000005LL

using namespace std;

typedef pair<int, int> pii;

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

long long v[NMAX],d[NMAX];
int a[NMAX],b[NMAX];

int main() {
	int n,m,i;
	long long cmmdc,cmmmc;

	fin>>n>>m;
	for(i=1;i<=n;++i) v[i]=1;
	for(i=1;i<=m;++i) {
		fin>>a[i]>>b[i]>>d[i];

		cmmdc=__gcd(v[a[i]],d[i]);
		v[a[i]]=v[a[i]]*d[i]/cmmdc;
		cmmdc=__gcd(v[b[i]],d[i]);
		v[b[i]]=v[b[i]]*d[i]/cmmdc;
	}

	for(i=1;i<=m;++i) {
		if(__gcd(v[a[i]],v[b[i]]) != d[i]) {
			fout<<-1;
			return 0;
		}
	}

	for(i=1;i<=n;++i) fout<<v[i]<<' ';

	return 0;
}