Cod sursa(job #3185037)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 17 decembrie 2023 17:55:58
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
using namespace std;
ifstream fin ("oz.in");
ofstream fout ("oz.out");
int n,m,i;
struct el
{
    int i,j;
    long long nr;
};
el q[100001];
long long v[100001];
long long cmmdc (long long a,long long b)
{
    int r;
    while (b!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
long long cmmmc (long long a,long long b)
{
    return a/cmmdc (a,b)*b;
}
int main ()
{
    fin>>n>>m;
    for (i=1; i<=n; i++)
        v[i]=1;
    for (i=1; i<=m; i++)
    {
        fin>>q[i].i>>q[i].j>>q[i].nr;
        v[q[i].i]=cmmmc (v[q[i].i],q[i].nr);
        v[q[i].j]=cmmmc (v[q[i].j],q[i].nr);
    }
    for (i=1; i<=m; i++)
    {
        if (cmmdc (v[q[i].i],v[q[i].j])!=q[i].nr)
        {
            fout<<-1;
            return 0;
        }
    }
    for (i=1; i<=n; i++)
        fout<<v[i]<<" ";
    return 0;
}