Cod sursa(job #1789529)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 27 octombrie 2016 09:00:26
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<bits/stdc++.h>
using namespace std;
vector<int> af;
vector<int>::iterator it;
int n,seen[50005];
int v[1005];
int main()
{
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);
    }
    sort(v+1,v+n+1);
    for(int i=1;i<=n;i++)
    {
        if(!seen[v[i]])
        {
            af.push_back(i);
            seen[v[i]]=1;
           for(int j=v[1];j<=v[n]-v[i];j++)
           {
               if(seen[j] && !seen[j+v[i]]) seen[j+v[i]]=1;
           }
        }
    }
    printf("%d\n",af.size());
    for(it=af.begin();it!=af.end();it++) printf("%d\n",v[*it]);
    return 0;
}