Mai intai trebuie sa te autentifici.
Cod sursa(job #679452)
Utilizator | Data | 13 februarie 2012 11:51:13 | |
---|---|---|---|
Problema | Oz | Scor | 55 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.73 kb |
#include<cstdio>
#define M 2000000000
#define N 10001
int n,m,i,d[10*N],v[N],t,a[10*N],b[10*N];
int C(int a,int b)
{if(!b)
return a;
return C(b,a%b);}
int main()
{FILE *f=fopen("oz.in","r"),*g=fopen("oz.out","w");
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[i],&b[i],&d[i]);
v[a[i]]=(v[a[i]]*d[i])/C(v[a[i]],d[i]);
v[b[i]]=(v[b[i]]*d[i])/C(v[b[i]],d[i]);
if(v[a[i]]>M||v[b[i]]>M)
t=1;}
if(!t)
{for(i=1;i<=m&&!t;i++)
if(C(v[a[i]],v[b[i]])!=d[i])
t=1;
if(!t)
for(i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
else
fprintf(g,"-1");}
else
fprintf(g,"-1");
return 0;}