Pagini recente » Clasament fmi-no-stress-2012 | Cod sursa (job #2257404) | Cod sursa (job #466015) | Cod sursa (job #476228) | Cod sursa (job #448875)
Cod sursa(job #448875)
#include<fstream>
using namespace std;
void read();
void write();
int cmmdc( int a, int b )
{
if ( b == 0 )
return a;
return cmmdc( b, a % b );
}
int cmmmc( int a, int b )
{
return a * b / cmmdc( a, b );
}
int n, m;
int a[10001];
struct tri
{
int i, j, d;
};
tri his[100001];
bool isPos = true;
int main()
{
read();
write();
return 0;
}
void read()
{
ifstream fin( "oz.in" );
fin >> n >> m;
int i, j, d;
for ( int x = 0; x < m; ++x )
{
fin >> i >> j >> d;
his[x].i = i, his[x].j = j, his[x].d = d;
if ( a[i] != 0 )
a[i] = cmmmc( a[i], d );
else
a[i] = d;
if ( a[j] != 0 )
a[j] = cmmmc( a[j], d );
else
a[j] = d;
}
for ( int x = 0; x < m; ++x )
{
if ( cmmdc( a[his[x].i], a[his[x].j] ) != his[x].d )
isPos = false;
}
fin.close();
}
void write()
{
ofstream fout( "oz.out" );
if ( isPos )
for ( int i = 1; i <= n; ++i )
{
if ( a[i] == 0 )
a[i] = 1;
fout << a[i] << ' ';
}
else
fout << -1;
fout << '\n';
fout.close();
}