Cod sursa(job #186573)

Utilizator savimSerban Andrei Stan savim Data 28 aprilie 2008 12:51:40
Problema Economie Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>

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]);
    
    for (i=1; i<=n-1; i++)
        for (j=i+1; j<=n; j++)
        if (a[i]>a[j])
        {
            k=a[i];
            a[i]=a[j];
            a[j]=k;
        }
    

    for (i=1; i<=n; i++)
    if (c[a[i]]==0 && a[i]!=a[i-1])
    {
        m++;b[m]=a[i];

        for (j=a[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;    
}