Cod sursa(job #112101)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 3 decembrie 2007 08:39:18
Problema Economie Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <values.h>
long a[50010],n,S=0,maxx=-MAXINT;
void citire(){
freopen ("economie.in","r",stdin);
scanf ("%ld",&n);
long x;
for (long i=0;i<n;i++) {
      scanf("%ld",&x);
      if (x>maxx)
	 maxx=x;
      a[x]=1;
      }
fclose(stdin);
}

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