Cod sursa(job #3247805)
| Utilizator | Data | 9 octombrie 2024 10:23:12 | |
|---|---|---|---|
| Problema | Oz | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.34 kb |
#include <fstream>
using namespace std;
ifstream cin("oz.in");
ofstream cout("oz.out");
int n,m,i,j,a,b,d;
int v[10000],f[100000];
bool e[100000];
int main()
{
for(i=2;i<=10000;i++)
{
for(j=i+i;j<=100000;j+=i)
{
e[j]=1;
}
}
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>a>>b>>d;
if(v[a]==0)
{
v[a]=1;
}
if(v[b]==0)
{
v[b]=1;
}
if(v[a]%d!=0)
{
v[a]=v[a]*d;
}
if(v[b]%d!=0)
{
v[b]=v[b]*d;
}
int l=2;
while(l<=d)
{
if(e[l]==0 && d%l==0)
{
d=d/l;
e[l]=1;
}
l++;
}
}
int verif=0;
for(i=1;i<=n;i++)
{
f[v[i]]++;
if(v[i]==0)
{
verif=1;
}
if(f[v[i]]>1)
{
for(j=1;j<=100000;j++)
{
if(e[j]==0)
{
v[i]=v[i]*j;
break;
}
}
}
}
if(verif==1)
{
cout<<"-1";
}
else
{
for(i=1;i<=n;i++)
{
cout<<v[i]<<" ";
}
}
}
