Cod sursa(job #3247805)

Utilizator User-77-Stancu Andreas User-77- 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]<<" ";
        }
    }
}