Cod sursa(job #1831775)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 18 decembrie 2016 18:34:47
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
int n,m,i,ok,r;
unsigned long long d[100005],a,b;
unsigned long long v[10005];
unsigned long long x[100005],y[100005];
int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
        fin>>x[i]>>y[i]>>d[i];
    for(i=1;i<=n;i++)
        v[i]=1;
    ok=0;
    for(i=1;i<=m;i++)
    {
        a=v[x[i]];b=d[i];
        while(b!=0)
        {
            r=a%b;
            a=b;
            b=r;
        }
        v[x[i]]/=a;
        v[x[i]]*=d[i];
        a=v[y[i]];b=d[i];
        while(b!=0)
        {
            r=a%b;
            a=b;
            b=r;
        }
        v[y[i]]/=a;
        v[y[i]]*=d[i];
    }
    for(i=1;i<=m;i++)
    {
        a=v[x[i]];b=v[y[i]];
        while(b!=0)
        {
            r=a%b;
            a=b;
            b=r;
        }
        if(a!=d[i])
        {
            ok=1;
        }
    }
    for(i=1;i<=n;i++)
        if(v[i]>2000000000)
            ok=1;
    if(ok==0)
        for(i=1;i<=n;i++)
            fout<<v[i]<<" ";
    else
        fout<<-1;
    return 0;
}