Cod sursa(job #1967022)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 15 aprilie 2017 19:54:33
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
# include <fstream>
# include <vector>
# define DIM 10010
using namespace std;
ifstream fin("oz.in");
ofstream fout("oz.out");
int Marcat[DIM],d[3][10*DIM],n,m,x,y,cost,i;
int cmmdc(int a,int b){
    while(b){
        int r=(a%b);
        a=b;
        b=r;
    }
    return a;
}
int cmmmc(int a,int b){
    return 1LL*a*b/cmmdc(a,b);
}
int main () {
    fin>>n>>m;
    for(i=1;i<=n;i++)
        Marcat[i]=1;
    for(i=1;i<=m;i++){
        fin>>x>>y>>cost;
        Marcat[x]=cmmmc(Marcat[x],cost);
        Marcat[y]=cmmmc(Marcat[y],cost);
        d[0][i]=x;
        d[1][i]=y;
        d[2][i]=cost;
    }
    for(i=1;i<=m;i++){
        x=d[0][i];
        y=d[1][i];
        cost=d[2][i];
        if(cmmdc(Marcat[x],Marcat[y])!=cost){
            fout<<"-1\n";
            return 0;
        }
    }
    for(i=1;i<=n;i++)
        fout<<Marcat[i]<<" ";
    fout<<"\n";
    return 0;
}