Mai intai trebuie sa te autentifici.
Cod sursa(job #164767)
Utilizator | Data | 24 martie 2008 19:53:00 | |
---|---|---|---|
Problema | Oz | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.82 kb |
#include <stdio.h>
#define DIM 10001
int cmmdc(int a, int b){
long int r;
while (b) {
r = a%b;
a = b;
b = r;
}
return a;
}
int v[DIM];
int n,m,a,b,d,a1,b1,ok,i;
int main(){
FILE *f = fopen("oz.in","r");
fscanf(f,"%d %d",&n,&m);
for (i=1;i<=n;i++)
v[i]=1;
for (i=1;i<=m;i++) {
fscanf(f,"%d %d %d",&a,&b,&d);
a1 = cmmdc(v[a],d);
v[a]=v[a]*(d/a1);
b1 = cmmdc(v[b],d);
v[b]=v[b]*(d/b1);
}
fclose(f);
ok=1;
f = fopen("oz.in","r");
fscanf(f,"%d %d",&n,&m);
for (i=1;i<=m;i++) {
fscanf(f,"%d %d %d",&a, &b, &d);
if (cmmdc(v[a],v[b])!=d)
ok=0;
}
fclose(f);
FILE *g = fopen("oz.out","w");
if (ok) {
for (i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
} else
fprintf(g,"-1");
fclose(g);
return 0;
}