Pagini recente » Cod sursa (job #447996) | Cod sursa (job #1261908) | Cod sursa (job #136701) | Cod sursa (job #2773888) | Cod sursa (job #3270863)
#include <bits/stdc++.h>
using namespace std;
int cmmdc(int a, int b){
while(b){
int r = a % b;
a = b;
b = r;
}
return a;
}
int main(){
ifstream fin("oz.in");
ofstream fout("oz.out");
long long n, t, a[10010], k = 1, max = 2000000000;
int i1[100001], j1[100001], d[100001];
fin >> n >> t;
for(int i = 1; i <= n; i++){
a[i] = 1;
}
bool gasit = true;
for(int p = 1; p <= t; p++){
int i, j, cmd;
fin >> i >> j >> cmd;
i1[k] = i;
j1[k] = j;
d[k] = cmd;
a[i] = a[i] * (cmd / cmmdc(a[i], cmd));
a[j] = a[j] * (cmd / cmmdc(a[j], cmd));
if(a[i] > max || a[j] > max)
gasit = true;
}
for(int i = 1; i <= k - 1; i++){
if(cmmdc(i1[i],j1[i]) != d[i])
gasit = false;
}
if(gasit == false)
fout << -1;
else for(int i = 1; i <= n; i++){
fout << a[i] << " ";
}
}