Cod sursa(job #173217)

Utilizator MciprianMMciprianM MciprianM Data 7 aprilie 2008 15:21:36
Problema Oz Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>

using namespace std;

long long p;
int n, m, v[10001];
int iv[100001], jv[100001], dv[100001];

int gcd(int a, int b){
  int c;
  while(b){
    c=a%b;
    b=a;
    a=c;
  }
  return a;
}

int lcm(int a, int b){
  p=(long long)a*b;
  p=p/gcd(a,b);
  int l=p;
  return l;
}

int main(){
  int i;
  ifstream f("oz.in");
  f>>n>>m;
  for(i=1;i<=n;i++)
    v[i]=1;
  for(i=0;i<m;i++){
    f>>iv[i]>>jv[i]>>dv[i];
    v[iv[i]]=lcm(v[iv[i]], dv[i]);
    v[jv[i]]=lcm(v[jv[i]], dv[i]);
  }
  f.close();
  ofstream g("oz.out");
  for(i=1;i<n;i++)
    if(v[i]>2000000000){
      g<<"-1\n";
      g.close();
      return 0;
    }
  for(i=0;i<m;i++)
    if(gcd(iv[i], jv[i])!=dv[i]){
      g<<"-1\n";
      g.close();
      return 0;
    }
  for(i=1;i<=n;i++)
    g<<v[i]<<' ';
  g<<'\n';
  g.close();
  return 0;
}