Cod sursa(job #186572)

Utilizator savimSerban Andrei Stan savim Data 28 aprilie 2008 12:49:29
Problema Economie Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <stdio.h>

int m,i,j,k,n,gas,min,max;
int a[1001],b[1001],fol[50001];

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]);
        fol[a[i]]=1;
    }

    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;
        }
        
    min=a[1];max=a[n];

    for (i=1; i<=n; i++)
    if (a[i]!=a[i-1])
    {
        for (j=min; j<=max; j++)
        if (fol[j]==1)
        {
           int t=1;
           while (j+t*a[i]<=max)
           {
                 fol[j+t*a[i]]++;
                 t++;
           }
        }
    }
    m=0;
    for (i=1; i<=n; i++)
    if (fol[a[i]]==1)
    {
       m++;
       b[m]=a[i];
    }
    
    printf("%d\n",m);
    for (i=1; i<=m; i++)
        printf("%d\n",b[i]);

    return 0;
}