Cod sursa(job #2001686)

Utilizator alextodoranTodoran Alexandru Raul alextodoran Data 17 iulie 2017 15:02:49
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n,x[10002],ii,i[100002],m,j[100002],d[100002],ok=1;
int cmmdc(int a, int b)
{
    int r;
    while(b)
    {
        r=b;
        b=a%b;
        a=r;
    }
    return a;
}
int main()
{
    ifstream fin ("oz.in");
    ofstream fout ("oz.out");
    fin>>n>>m;
    fill(x+1,x+n+1,1);
    for(ii=1;ii<=m;ii++)
    {
        fin>>i[ii]>>j[ii]>>d[ii];
        x[i[ii]]*=(d[ii]/cmmdc(x[i[ii]],d[ii]));
        x[j[ii]]*=(d[ii]/cmmdc(x[j[ii]],d[ii]));
    }
    for(ii=1;ii<=m;ii++)
    {
        if(cmmdc(x[i[ii]],x[j[ii]])!=d[ii]){ok=0;break;}
    }
    if(ok)for(ii=1;ii<=n;ii++)fout<<x[ii]<<" ";
    else fout<<"-1";
    return 0;
}