Cod sursa(job #2512847)

Utilizator BriannaBrianna Stan Brianna Data 21 decembrie 2019 19:13:11
Problema Oz Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.49 kb
#include <fstream>

using namespace std;
ifstream in("oz.in");
ofstream out("oz.out");
long long cmmmc(long long a,long long b)
{
    long long cmmdc,r,aux,bux,cmmmc,boss;
    aux=a;
    bux=b;
    if(a>b)
    {
        boss=a;
        a=b;
        b=boss;
    }
    while(b!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    cmmdc=a;
    cmmmc=(aux*bux)/cmmdc;
    return cmmmc;
}
long long cmmdc(long long a, long long b)
{
    long long cmmdc,r,boss;
    if(a>b)
    {
        boss=a;
        a=b;
        b=boss;
    }
    while(b!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    cmmdc=a;
    return cmmdc;
}
int main()
{
    long long n,m,ok=1;
    static long long v[10002],i[100002],j[100002],d[100002];
    in>>n>>m;
    for(int p=1;p<=n;p++)
    {
        v[p]=1;
    }
    for(int k=1;k<=m;k++)
    {
        in>>i[k]>>j[k]>>d[k];
        if(v[i[k]]%d[k]!=0)
        {
            v[i[k]]=cmmmc(v[i[k]],d[k]);
        }
        if(v[j[k]]%d[k]!=0)
        {
            v[j[k]]=cmmmc(v[j[k]],d[k]);
        }
    }
    for(int k=1;k<=m;k++)
    {
        if(cmmdc(v[i[k]],v[j[k]])!=d[k] || v[i[k]]>2000000000 || v[j[k]]>2000000000)
        {
            ok=0;
            break;
        }
    }
    if(ok!=0)
    {
        for(int k=1;k<=n;k++)
        {
            if(k!=n)
            out<<v[k]<<" ";
            else
                out<<v[k];
        }
    }
    else
        out<<"-1 ";
    return 0;
}