Cod sursa(job #580393)

Utilizator soriynSorin Rita soriyn Data 13 aprilie 2011 02:35:59
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>
#include<algorithm>

using namespace std;

int sol[50010];
int inf=1<<31;
int mon[1010],uz[1010];
int n,cnt;
int main()
{
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);
    scanf("%d",&n);

    for(int i=1;i<=n;i++)
       scanf("%d",&mon[i]);

       sort(mon+1,mon+n+1);
      int max=mon[n];
      sol[0]=1;
      for(int i=1;i<=max;i++)
      {
          for(int j=1;j<=n;j++)
          {
              if(sol[i-mon[j]]==1) {sol[i]=1;if(uz[j]==0) cnt++;uz[j]=1;break;}
          }
      }
printf("%d\n",cnt);
for(int i=1;i<=n;i++)
{
    if(uz[i]==1) printf("%d\n",mon[i]);
}

}