Pagini recente » Cod sursa (job #1932474) | Cod sursa (job #2557741) | Cod sursa (job #237409) | Cod sursa (job #1106213) | Cod sursa (job #719555)
Cod sursa(job #719555)
#include <cstdio>
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
#define pb push_back
int v[1024],n;
bitset<50001> uz;
vector<int> sol;
void read ()
{
ifstream in ("economie.in");
in>>n;
for(int i=0;i<n;++i)
in>>v[i];
}
void solve ()
{
for(int i=0;i<=v[n-1];i+=v[0])
uz[i]=1;
sol.pb(v[0]);
for(int i=1;i<n;++i)
if(!uz[v[i]])
{
sol.pb(v[i]);
for(int j=0;j+v[i]<=v[n-1];++j)
if(uz[j])
uz[j+v[i]]=1;
}
}
void out ()
{
freopen ("economie.out","w",stdout);
printf("%d\n",sol.size());
for(vector<int>::iterator i=sol.begin();i<sol.end();++i)
printf("%d\n",*i);
}
int main ()
{
read ();
solve ();
out ();
return 0;
}