Cod sursa(job #1415040)

Utilizator danstefanDamian Dan Stefan danstefan Data 3 aprilie 2015 16:49:05
Problema Oz Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 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("%lld%lld",&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]= 1LL*v[ca]*1LL*(d[i]/cmmdc(d[i],v[ca]));
        v[cb]= 1LL*v[cb]*1LL*(d[i]/cmmdc(d[i],v[cb]));}
    for (i=1;i<=m;i++)
 if (d[i] != cmmdc (v[a[i]], v[b[i]]) || v[a[i]] > 2000000000 || v[b[i]] > 2000000000){
        g<<-1;
            ok = false;
            break;}
    if (ok == true)
        for (i = 1; i <= n; i++)
            g<<v[i]<<" ";
    return 0;}