Pagini recente » Cod sursa (job #1496172) | Cod sursa (job #1198827) | Cod sursa (job #2209120) | Cod sursa (job #769579) | Cod sursa (job #137801)
Cod sursa(job #137801)
#include <stdio.h>
int main(){
int v[100000],w[100000],i,j,n,inj,gata,aux,k=0,ok,t,s;
FILE*f=fopen("economie.in","r");
FILE*g=fopen("economie.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
inj=n;
while(inj>1){
inj/=2;
do {
gata=1;
for(i=1;i<=n-inj;i++)
if(v[i]>v[i+inj]){
aux=v[i];
v[i]=v[i+inj];
v[i+inj]=aux;
gata=0;
}
}
while(!gata);
}
w[++k]=v[1];
for(i=2;i<=n;i++){
ok=0;
for(j=1;j<=k;j++){
s=w[j];
if(v[i]%s==0) {ok=1; while(v[i]%s==0) v[i]=v[i]/s; break;}
for(t=i+1;t<=k;j++){
s+=w[t];
if(s==v[i]) { ok=1; while(v[i]%s==0) v[i]=v[i]/s; break;}
}
if(ok) break;
}
if(!ok) w[++k]=v[i];
}
fprintf(g,"%d\n",k);
for(i=1;i<=k;i++)
fprintf(g,"%d\n",w[i]);
return 0;
}