Cod sursa(job #110641)

Utilizator lamez0rBogdan Bondor lamez0r Data 27 noiembrie 2007 09:32:25
Problema Economie Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<stdio.h>
unsigned int n,v[1001];

int main ()
{
int i,schimb,aux,a[1001],nr=0,c[1001],poz=0,j,k,x;
FILE *f;
f=fopen("economie.in","r");
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
    fscanf(f,"%d",&v[i]);
fclose(f);
do {
   schimb=0;
   for (i=1;i<n;i++)
       if (v[i]>v[i+1])
	  {
	  schimb=1;
	  aux=v[i];
	  v[i]=v[i+1];
	  v[i+1]=aux;
	  }
   } while (schimb);
f=fopen("economie.out","w");
if (v[1]==1)
   fprintf(f,"1\n1");
else
   {
   for (i=1;i<=n;i++)
       a[i]=v[i];
   while (nr<n)
	 {
	 for (i=1;i<=n;i++)
	     if (a[i]!=0)
		{
		nr++;
		x=a[i];
		c[++poz]=a[i];
		a[i]=0;
		j=1;
		while (x<=v[n])
		      {
		      if (j!=1)
                         x=x/j;
		      x=x*(++j);
		      for (k=i;k<=n;k++)
			  if (v[k]==x)
			     {
			     a[k]=0;
			     nr++;
			     }
		      }
		}
	 }
   fprintf(f,"%d\n",poz);
   for (i=1;i<=poz;i++)
   fprintf(f,"%d\n",c[i]);
   fclose(f);
   }
return 0;
}