Cod sursa(job #123013)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 14 ianuarie 2008 09:24:55
Problema Economie Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>
#include <values.h>
int  a[50010],n,S=0,maxx=-MAXINT;
void citire(){
freopen ("economie.in","r",stdin);
scanf ("%d",&n);
int x;
for (int i=0;i<n;i++) {
      scanf("%d",&x);
      a[x]=1;
      }
for (int u=50008;u>=0;u--)
  if (a[u]==0)
{
	   maxx=u;
       break;
}
fclose(stdin);
}

void numarare(){
for (int i=0;i<=maxx;i++)
   if (a[i]==1){
      S++;
      for (int m=0;m<=maxx-i+1;m++)
	if (a[m]>0)
      for (int j=1;j<=maxx;j++)
	 if (i*j+m>(maxx+1))
	    break;
	 else
	    a[i*j+m]=2;
   }
}
int main(){
freopen ("economie.out","w",stdout);
citire();
numarare();
printf("%d",S);
printf("\n");
for (int i=0;i<=maxx;i++)
   if (a[i]==1)      {
       printf("%d",i);
       printf("\n");
   }
printf("\n");
fclose(stdout);
return 0;
}