Cod sursa(job #399124)

Utilizator freak93Adrian Budau freak93 Data 19 februarie 2010 20:57:43
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<fstream>

using namespace std;

const char iname[]="oz.in";
const char oname[]="oz.out";
const int maxn=10005;
const int maxm=100005;

ifstream f(iname);
ofstream g(oname);

long long a[maxn],i,j,m,q[maxm][3],n,x,y,z;

long long cmmdc(long long a,long long b)
{
    if(b==0)
        return a;
    return cmmdc(b,a%b);
}

int main()
{
    f>>n>>m;
    for(i=1;i<=n;++i)
        a[i]=1;
    for(i=1;i<=m;++i)
    {
        f>>x>>y>>z;
        a[x]=a[x]/cmmdc(a[x],z)*z;
        a[y]=a[y]/cmmdc(a[y],z)*z;
        q[i][0]=x;q[i][1]=y;q[i][2]=z;
    }

    for(i=1;i<=m;++i)
        if(cmmdc(a[q[i][0]],a[q[i][1]])!=q[i][2])
        {
            g<<"-1\n";
            f.close();
            g.close();

            return 0;
        }

    for(i=1;i<=n;++i)
        g<<a[i]<<" ";
    g<<"\n";

    f.close();
    g.close();

    return 0;
}