Pagini recente » Cod sursa (job #553990) | Cod sursa (job #1482598) | Cod sursa (job #2907804) | Cod sursa (job #1863559) | Cod sursa (job #157862)
Cod sursa(job #157862)
#include<math.h>
#include<stdio.h>
FILE *f1,*f2;
int main ()
{
int n,j,i,v[1000],sters[1000]={0},gata,nrmin=0,aux,sol[1000],k,cat[1000];
f1=fopen("economie.in","r");
f2=fopen("economie.out","w");
fscanf(f1,"%i\n",&n);
for(i=0;i<n;i++)
fscanf(f1,"%i",&v[i]);
sol[nrmin++]=v[0];
for(i=1;i<n;i++)
if(v[i]%v[0]==0)
sters[i]=1;
v[i]=k*v[0];
for(i=1;i<n;i++){
for(j=i+1;j<n;j++)
if(v[j]%v[i]==0)
sters[j]=1;
if(!sters[i]){
aux=v[i];
j=nrmin-1;
gata=0;
do{
for(j;j>=0;j--){
cat[j]=aux/sol[j];
aux=aux%sol[j];}
if(aux==0){
sters[i]=1;
gata=1;}
else{ aux=aux+cat[0]*sol[0];
if(aux!=v[i])
{j=1;
while((j<nrmin-1)&&(cat[j]==0))
j++;
cat[j]--;
aux=aux+sol[j];
j=j-1;}
} }
while((sters[i]==0)&&(aux!=v[i]));
if(!gata)
sol[nrmin++]=v[i];
else
sters[i]=1;}}
fprintf(f2,"%i\n",nrmin);
for(i=0;i<nrmin;i++)
fprintf(f2,"%i\n",sol[i]);
fclose(f1);
fclose(f2);
return 0;}