Cod sursa(job #186562)

Utilizator savimSerban Andrei Stan savim Data 28 aprilie 2008 12:32:11
Problema Economie Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

int i,j,k,n,m;
int a[1010],b[1010];
int c[50010];

int main()
{
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);
    
    scanf("%d ",&n);
    for (i=1; i<=n; i++) scanf("%d ",&a[i]);
    
    sort(a+1,a+n+1);
    
    for (i=1; i<=n; i++)
    if (c[a[i]]==0 && a[i]!=a[i-1])
    {
        m++;b[m]=a[i];

        for (j=1; j<=a[n]; j++)
        {
            if (j%a[i]==0) c[j]=1;
            if (c[j]==1 && j+a[i]<=a[n]) c[j+a[i]]=1;
        }
        
    }
    
    printf("%d\n",m);
    for (i=1; i<=m; i++) printf("%d\n",b[i]);
        
    return 0;    
}