Cod sursa(job #995740)

Utilizator tavonSuleyman Magnificul tavon Data 10 septembrie 2013 10:57:18
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
const int N = 1005;
const int R = 50005;
int n,v[N],set[N],minn,test[R];
void cleartest(int x){for(int i=1;i<=x;i++)test[i]=0;}
int canobtain(int x){
	cleartest(x);
	test[0]=1;
	for(int i=1;i<=minn;i++){
		for(int j=0;j<=x;j++){
			if(test[j]==1) test[j+set[i]]=1;
		}
	}
	return test[x];
}
int main(){
	in>>n;
	for(int i=1;i<=n;i++) in>>v[i];
	sort(&v[1],&v[n+1]);
	for(int i=1;i<=n;i++) if(!canobtain(v[i])) set[++minn]=v[i];
	out<<minn<<'\n';
	for(int i=1;i<=minn;i++) out<<set[i]<<'\n';
	return 0;
}