Cod sursa(job #123005)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 14 ianuarie 2008 09:14:36
Problema Economie Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 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);
      if (x>maxx)
	 maxx=x;
      a[x]=1;
      }
fclose(stdin);
}

void numarare(){
for (int i=0;i<=maxx;i++)
   if (a[i]==1){
      S++;
      for (int m=0;m<=maxx+1;m++)
	if (a[m]>0)
      for (int 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("%d",S);
printf("\n");
for (int i=0;i<=maxx+1;i++)
   if (a[i]==1)      {
       printf("%d",i);
       printf("\n");
   }
printf("\n");
fclose(stdout);
return 0;
}