Cod sursa(job #1292671)

Utilizator DjokValeriu Motroi Djok Data 14 decembrie 2014 16:51:34
Problema Oz Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<algorithm>
using namespace std;

typedef struct lol {
        int x,y,z;
}troll;

int i,n,m,a[10005];
bool u;
troll q[100005];

inline int cmmdc(int a,int b) {
       if(!b) return a;
       return cmmdc(b,a%b);
}

bool OK(int i) { return cmmdc(a[q[i].x],a[q[i].y])==q[i].z; }

int main()
{
  ifstream cin("oz.in");
  ofstream cout("oz.out");

  cin>>n>>m;
  for(i=1;i<=n;++i) a[i]=1;
  for(i=1;i<=m;++i)
  {
    cin>>q[i].x>>q[i].y>>q[i].z;
    a[q[i].x]=(q[i].z*a[q[i].x])/cmmdc(a[q[i].x],q[i].z);
    a[q[i].y]=(q[i].z*a[q[i].y])/cmmdc(a[q[i].y],q[i].z);
  }

  for(i=1;i<=m && !u;++i)
  if(!OK(i)) u=1;

  if(!u) for(i=1;i<=n;++i) cout<<a[i]<<' ';
  else cout<<"-1\n";

 return 0;
}