Cod sursa(job #291521)

Utilizator ConsstantinTabacu Raul Consstantin Data 29 martie 2009 22:46:45
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>

int v[1001],viz[50001],max,sol[1001],i,j,k,l,m,n;

int main(){

freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);

scanf("%d",&n);

for(i=1;i<=n;i++)
        {scanf("%d",&v[i]);
        if(v[i]>max)max=v[i];
        if(v[i]==1)
                {printf("%d\n%d",1,1);
                return 0;
                }}

for(i=1;i<=n;i++)
{if(!viz[v[i]])viz[v[i]]=2;
for(j=1;j<=max-v[i];j++)
        if(j%v[i]==0)
                viz[j+v[i]]=1;
        else
        if(viz[i])
                viz[j+v[i]]=1;
}
        
for(i=1;i<=n;i++)
        if(viz[v[i]]!=1)sol[++k]=v[i];

printf("%d\n",k);
for(i=1;i<=k;i++)
        printf("%d\n",sol[i]);

        
return 0;}