Cod sursa(job #206522)

Utilizator irene_mFMI Irina Iancu irene_m Data 7 septembrie 2008 14:56:13
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream.h>
int x[1001],a[1001],n,nr,i,j,aux,b,i1,j1,c,k;

void poz(int li, int ls)
 {i1=0;
   j1=-1;
   i=li;
   j=ls;
   while(i<j)
    {if(x[i]<x[j])
      {c=x[j];
       x[j]=x[i];
       x[i]=c;
       c=i1;
       i1=-j1;
       j1=-c;
       }
      i+=i1;
      j+=j1;
    }
   k=i;
  }

void quick(int li, int ls)
 {if(li<ls)
  {poz(li,ls);
   quick(li,k-1);
   quick(k+1,ls);
   }
  }


void minim()
 {quick(1,n);
  nr++;
  a[nr]=x[n];
  x[n]=0;
  n--;
  }



void main()
{
 ifstream fin("economie.in");
 fin>>n;
 for(i=1;i<=n;i++)
  fin>>x[i];
 fin.close();
 minim();
 for(i=1;i<=n;i++)
  {b=x[i]; aux=-1;
   for(j=1;j<=nr;j++)
    {while(b>0 && aux!=0)
      {aux=b%a[j];
       b/=a[j];
       }
     b=aux;
     }
    if(aux!=0)
     minim();
    }

 ofstream fout("economie.out");
 fout<<nr<<endl;
 for(i=1;i<=nr;i++)
  fout<<a[i]<<" ";
 fout<<'\n';

}