Cod sursa(job #1831391)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 17 decembrie 2016 23:02:48
Problema Oz Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
int n,m,i,x[100005],y[100005],ok,r;
long long d[100005],a,b;
double v[10005];
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];
        if((v[x[i]]>=2000000000)||((int)v[x[i]]!=v[x[i]]))
        {
            ok=1;
            break;
        }
        if((v[y[i]]>=2000000000)||((int)v[y[i]]!=v[y[i]]))
        {
            ok=1;
            break;
        }
    }
    if(ok==1)
        fout<<-1;
    else
        for(i=1;i<=n;i++)
            fout<<v[i]<<" ";
    return 0;
}