Cod sursa(job #1151353)

Utilizator NistorSergiuNistor Sergiu NistorSergiu Data 24 martie 2014 08:32:02
Problema Oz Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>
using namespace std;
typedef struct {int pi,pj,dd;} CMM;
CMM ele[100001];
int vec[10001];
bool modi[10001];
int cmmdc(int a, int b)
{
    int r;
    while(b!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int main()
{
    int n,m;
    int ii,i,j,d;
    int dc;
    bool posib=1;
    ifstream f("oz.in");
    f>>n>>m;
    for(i=1;i<=n;i++)
        vec[i]=1;
    for(ii=1;ii<=m;ii++)
    {
        f>>i>>j>>d;
        dc=cmmdc(vec[i],d);
        vec[i]=vec[i]/dc*d;
        dc=cmmdc(vec[j],d);
        vec[j]=vec[j]/dc*d;
        modi[i]=1;
        modi[j]=1;
        ele[ii].pi=i;
        ele[ii].pj=j;
        ele[ii].dd=d;
    }
    f.close();
    for(i=1;i<=n;i++)
        if(!modi[i])
            break;
    if(i<=n)
        posib=0;
    for(ii=1;ii<=m;ii++)
        if(cmmdc(ele[i].pi,ele[i].pj)!=ele[i].dd)
            break;
    if(i<=n)
        posib=0;
    ofstream g("oz.out");
    if(!posib)
        g<<"-1";
    else
        for(i=1;i<=n;i++)
            g<<vec[i]<<" ";
    g<<'\n';
    g.close();
    return 0;
}