Pagini recente » Cod sursa (job #264916) | Cod sursa (job #730417) | Cod sursa (job #1134066) | Cod sursa (job #1838502) | Cod sursa (job #3163864)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
const int DIM = 1010;
const int MAX = 50010;
int n, maxCoin = 0;
int v[DIM];
bool visited[MAX], isSol[MAX];
int main() {
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> v[i];
maxCoin = max(maxCoin, v[i]);
}
sort(v + 1, v + n + 1);
int solCnt = 0;
visited[0] = true;
for (int i = 1; i <= n; i++) {
bool hasVisited = false;
for (int j = i; j <= n; j++) {
if (visited[v[j] % v[i]] && !visited[v[j]])
visited[v[j]] = hasVisited = true;
}
if (hasVisited) {
solCnt++;
isSol[v[i]] = true;
for (int j = v[i]; j <= maxCoin; j += v[i])
visited[j] = true;
}
}
fout << solCnt << '\n';
for (int i = 1; i <= maxCoin; i++)
if (isSol[i])
fout << i << '\n';
return 0;
}