Cod sursa(job #1068000)

Utilizator TibixbAndrei Tiberiu Tibixb Data 27 decembrie 2013 19:48:26
Problema Oz Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<fstream>
#include<cstdio>
using namespace std;
int v[10003], x[100003], y[100003], d[100003], i, n, m, a, b, r, ok;
FILE*fin=fopen("oz.in","r");
ofstream fout("oz.out");
int main(){
    fscanf(fin,"%d%d", &n, &m);
    for(i=1; i<=n; i++)
        v[i]=1;
    for(i=1; i<=m; i++){
        fscanf(fin,"%d%d%d", &x[i], &y[i], &d[i]);
        a=v[x[i]];
        b=d[i];
        while(b!=0){
            r=a%b;
            a=b;
            b=r;
        }
        v[x[i]]=(v[x[i]]/a)*d[i];
        a=v[y[i]];
        b=d[i];
        while(b!=0){
            r=a%b;
            a=b;
            b=r;
        }
        v[y[i]]=(v[y[i]]/a)*d[i];
    }
    for(i=1; i<=m; i++){
        a=v[x[i]];
        b=v[y[i]];
        while(b!=0){
            r=a%b;
            a=b;
            b=r;
        }
        if(a!=d[i]){
            ok=1;
            fout<<"-1";
            break;
        }
    }
    if(ok==0)
        for(i=1; i<=n; i++)
            fout<<v[i]<<" ";
    return 0;
}