Cod sursa(job #2485918)

Utilizator pimao2004Lupu Stefan Dragos pimao2004 Data 2 noiembrie 2019 10:40:05
Problema Oz Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;
ifstream in ("oz.in");
ofstream out ("oz.out");
long long cmmdc(int a,int b)
{
    int r=0;
    while(b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int v[10007];
struct nugarel
{
    int l,r;
    int d;
} vv[100007];
int main()
{
    int n,m,i,j,d;
    in>>n>>m;
    for(int a=1;a<=n;a++)
        v[a]=1;
    for(int cazan=1;cazan<=m;cazan++)
    {
        in>>i>>j>>d;
        v[i]=1LL*v[i]*d/cmmdc(v[i],d);
        v[j]=1LL*v[j]*d/cmmdc(v[j],d);
        vv[j].l=i;
        vv[j].r=j;
        vv[j].d=d;
    }
    for(int a=1;a<=n;a++)
    {
        if(v[a]>2e9||v[a]<0)
        {
            out<<-1;
            return 0;
        }
    }
    for(int a=1;a<=m;a++)
        if(cmmdc(v[vv[a].l],v[vv[a].r])!=vv[a].d)
    {
        out<<-1;
            return 0;
    }
    for(int a=1;a<=n;a++)
    {
        out<<v[a]<<' ';
    }
    return 0;
}