Cod sursa(job #858286)
Utilizator | Data | 18 ianuarie 2013 19:18:55 | |
---|---|---|---|
Problema | Economie | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include<fstream>
#include<algorithm>
#define Valmax 5000
using namespace std;
ifstream f("economie.in");
ofstream g("economie.out");
int N, A[1001],S[50005],C[1001];
int main ()
{
int i, j ,k;
f>>N;
for(i=1;i<=N;i++)
f>>A[i];
sort(A+1,A+N+1);
k=0; S[0]=1;
for(i=1;i<=N;i++)
{
if(!S[A[i]])
{
C[++k]=A[i];
}
for(j=0; j+A[i]<=Valmax;j++)
if(S[j])
S[j+A[i]]=1;
}
g<<k<<endl;
for(i=1;i<=k;i++)
g<<C[i]<<endl;
return 0;
}