Cod sursa(job #1840590)

Utilizator circeanubogdanCirceanu Bogdan circeanubogdan Data 4 ianuarie 2017 16:49:51
Problema Stergeri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
using namespace std;
ifstream f("oz.in");
ofstream g("oz.out");
int n,m,i,j,ii,d,v[10002],ok,x,w[100002][3];
int cmmdc(int a,int b)
{
    int r=0;
    while(b!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int main()
{
    f>>n>>m;

    for(ii=1;ii<=m;ii++)
    {

        f>>i>>j>>d;
        w[ii][0]=i;
        w[ii][1]=j;
        w[ii][2]=d;
        if(v[i]==0)
            v[i]=d;
        else
        {
            x=cmmdc(v[i],d);
            v[i]*=d/x;
        }

        if(v[j]==0)
            v[j]=d;
        else
        {
            x=cmmdc(v[j],d);
            v[j]*=d/x;
        }
    }
    ok=1;
    for(i=1;i<=n;i++)
        if(v[i]>2000000000)
        ok=0;
    for(i=1;i<=n;i++)
        if(v[i]==0) v[i]=1;
    for(i=1;i<=m;i++)
    {
        if(cmmdc(v[w[i][0]],v[w[i][1]])!=w[i][2])
            ok=0;
    }
    if(ok==0) g<<-1;
    else
        for(i=1;i<=n;i++)
        g<<v[i]<<" ";
    return 0;
}