Pagini recente » Cod sursa (job #1745380) | Cod sursa (job #3212372) | Cod sursa (job #1347151) | Cod sursa (job #863470) | Cod sursa (job #481744)
Cod sursa(job #481744)
#include <stdio.h>
#include <vector>
using namespace std;
#define MAX 2000000000
int m, n, i, j, k;
int cm;
struct numere
{
int x;
int y;
int div;
};
struct numere nr[100010];
int cmmdc (int a, int b)
{
int r;
while (b)
{
r = a % b;
a = b;
b = r;
}
return a;
}
int cmmmc (int a, int b)
{
return (long long) a * b / cmmdc (a, b);
}
int main ()
{
FILE *f = fopen ("oz.in","r");
FILE *g = fopen ("oz.out","w");
fscanf (f,"%d %d", &n, &m);
vector <int> v (n + 1, 1);
for (k=1; k<=m; ++k)
{
fscanf (f,"%d %d %d", &nr[k].x, &nr[k].y, &nr[k].div);
v[nr[k].x] = cmmmc (v[nr[k].x],nr[k].div);
v[nr[k].y] = cmmmc (v[nr[k].y],nr[k].div);
}
for (i=1; i<=m; ++i)
{
if (cmmdc (v[nr[i].x], v[nr[i].y]) != nr[i].div)
{
fprintf (g,"-1");
return 0;
}
}
for (i=1; i<=n; ++i)
fprintf (g,"%d ", v[i]);
fclose(g);
fclose(f);
return 0;
}