Cod sursa(job #1415037)

Utilizator danstefanDamian Dan Stefan danstefan Data 3 aprilie 2015 16:45:01
Problema Oz Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <cstdio>
#include <fstream>
using namespace std;
long long n, k, i,m,a[10010],b[10010],d[10010],v[10010],ca,cb,cc;
bool ok = true;
int cmmdc(long a,long b){
    int r;
    r=a%b;
    while(r!=0){
        a = b;
        b = r;
        r = a % b;}
    return b;}
int main (){
    freopen("oz.in","r",stdin);
    ofstream g ("oz.out");
    scanf("%d%d",&n,&m);
    for (i = 1; i <= n; i++)
        v[i] = 1;
    for (i = 1; i <= m; i++){
        scanf("%lld%lld%lld", &a[i], &b[i], &d[i]);
        ca=a[i];
        cb=b[i];
        cc=d[i];
        v[ca]= v[ca]*(d[i]/cmmdc(d[i],v[ca]));
        v[cb]= v[cb]*(d[i]/cmmdc(d[i],v[cb]));
        if(v[ca]>2000000000||v[cb]>2000000000){ok=false;break;}}
        if(!ok)g<<-1;
        else{
    for (i = 1; i <= m; i++)
        if (d[i]!=cmmdc(v[a[i]],v[b[i]]))
            {g<<-1;
            ok = false;
            break;}
    if (ok == true)
        for (i = 1; i <= n; i++)
            g<<v[i]<<" ";}
    return 0;}