Cod sursa(job #173249)

Utilizator MciprianMMciprianM MciprianM Data 7 aprilie 2008 15:56:41
Problema Oz Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>

using namespace std;
const int cmp=2000000000;
long long p;
int n, m, v[10001];
int iv[100001], jv[100001];
int dv[100001];

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

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

int main(){
  int i;
  ifstream f("oz.in");
  f>>n>>m;
  for(i=1;i<=n;i++)
    v[i]=1;
  ofstream g("oz.out");
  for(i=0;i<m;i++){
    f>>iv[i]>>jv[i]>>dv[i];
    p=lcm(v[iv[i]], dv[i]);
    if(p>cmp){
      g<<"-1\n";
      g.close();
      return 0;
    }
    else v[iv[i]]=p;
    p=lcm(v[jv[i]], dv[i]);
    if(p>cmp){
      g<<"-1\n";
      g.close();
      return 0;
    }
    else v[jv[i]]=p;
  }
  f.close();
  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;

}