Cod sursa(job #2702563)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 4 februarie 2021 18:05:18
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;


int n;
vector<int>v(1003);
vector<bool>a(500003);
vector<int>ans;

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.begin()+1,v.begin()+n+1);

	for(int i=1;i<=n;i++){
	 	if(!a[v[i]]){
	 	    ans.push_back(v[i]);
	 	    a[v[i]]=1;
	 	    for(int j=1 ; j+v[i] <= 50000; j++){
	 	    	if(a[j]){
	 	    		a[j+v[i]]=1; 
	 	    	}

	 	    }

	 	}
	}

	printf("%d\n",ans.size());
	for(int i=0;i<ans.size();i++){
		printf("%d\n",ans[i]);
	}

}