Pagini recente » Cod sursa (job #497537) | Cod sursa (job #2370515) | Cod sursa (job #1779841) | Cod sursa (job #2878288) | Cod sursa (job #2732741)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
const int NMAX = 1003, valMAX = 50003;
int w[NMAX], minim, rest[valMAX], nrRest, maxim;
bool ok[valMAX];
int main()
{
int n, i;
fin >> n;
minim = INT_MAX;
maxim = INT_MIN;
for(i = 1; i <= n; ++i)
fin >> w[i], minim = min(minim, w[i]), maxim = max(maxim, w[i]);
sort(w+1, w+1+n);
rest[0] = minim;
nrRest = 1;
int j;
ok[0] = true;
for(i = 1; i <= n; ++i){
if(rest[w[i] % minim])
continue;
++nrRest;
rest[w[i] % minim] = w[i];
ok[w[i] % minim] = true;
for(j = 1; j < minim; ++j){
if(j == w[i] % minim)
continue;
if(rest[j] && rest[(j+w[i])%minim] == 0)
rest[(j+w[i])%minim] = -1;
}
}
fout << nrRest << '\n';
for(i = 0; i < minim; ++i)
if(ok[i])
fout << rest[i] << ' ';
return 0;
}