Pagini recente » Monitorul de evaluare | Cod sursa (job #735895) | Cod sursa (job #1728089) | Cod sursa (job #2015477) | Cod sursa (job #173249)
Cod sursa(job #173249)
#include<fstream>
using namespace std;
const int cmp=2000000000;
long long p;
int n, m, v[10001];
int iv[100001], jv[100001];
int dv[100001];
int gcd(int a, int b){
int c;
while(b){
c=a%b;
a=b;
b=c;
}
return a;
}
long long lcm(int a, int b){
p=a;
p=p*b;
p=p/gcd(a,b);
return p;
}
int main(){
int i;
ifstream f("oz.in");
f>>n>>m;
for(i=1;i<=n;i++)
v[i]=1;
ofstream g("oz.out");
for(i=0;i<m;i++){
f>>iv[i]>>jv[i]>>dv[i];
p=lcm(v[iv[i]], dv[i]);
if(p>cmp){
g<<"-1\n";
g.close();
return 0;
}
else v[iv[i]]=p;
p=lcm(v[jv[i]], dv[i]);
if(p>cmp){
g<<"-1\n";
g.close();
return 0;
}
else v[jv[i]]=p;
}
f.close();
for(i=0;i<m;i++)
if(gcd(iv[i], jv[i])!=dv[i]){
g<<"-1\n";
g.close();
return 0;
}
for(i=1;i<=n;i++)
g<<v[i]<<' ';
g<<'\n';
g.close();
return 0;
}