Cod sursa(job #991094)

Utilizator enedumitruene dumitru enedumitru Data 29 august 2013 18:14:20
Problema Oz Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
#define NN 10001
#define ll long long
using namespace std;
ifstream f("oz.in"); ofstream g("oz.out");
int n,m,p,ii[NN],jj[NN];
ll dd[NN],v[NN];
ll cmmmc(ll a, ll b)
{	ll r,pr=a*b;
	while(b) r=a%b, a=b, b=r;
	return pr/a;
}
ll cmmdc(ll a, ll b)
{	ll r;
	while(b) r=a%b, a=b, b=r;
	return a;
}
int main()
{   f>>n>>m;
    for(p=1;p<=n;++p) v[p]=1;
    for(p=1;p<=m;++p)
    {   int i,j; ll d;
		f>>i>>j>>d; ii[p]=i; jj[p]=j; dd[p]=d;
        v[i]=cmmmc(v[i],d);
		v[j]=cmmmc(v[j],d);
    }
	int w=1;
	for(p=1;p<=m && w;)
    if(cmmdc(v[ii[p]],v[jj[p]])==dd[p]) ++p; else w=0;
	if(w) for(p=1;p<=n;p++) g<<v[p]<<" "; else g<<"-1";
	g<<'\n'; g.close(); return 0;
}