Cod sursa(job #2501149)

Utilizator Mada2003Madalina Scarlat Mada2003 Data 29 noiembrie 2019 09:43:51
Problema Economie Scor 0
Compilator cpp-64 Status done
Runda simu Marime 1.19 kb
#include <fstream>
#include <algorithm>

using namespace std;

int n;
int v[1005], ans[1005];
bool ok[50005];

//int multiplii(int x)
//{
//    for(int k = 1; k <= 50000; k++)
//       a[k] = 0;
//    for(int i = 1; i <= )
//}

int main()
{
    ifstream cin("economie.in");
    ofstream cout("economie.out");
    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >> v[i];
    sort(v + 1, v + n + 1);
    if(v[1] == 1)
    {
        cout << "1\n1";
        return 0;
    }
    ok[0] = 1;
    int k = 0;
    for(int i = 1; i <= n; i++)
    {
        if(ok[v[i]] == 0)
        {
            ans[++k] = v[i];
            for(int j = 1; j <= n; j++)
                if(ok[v[j] + v[i]] == 0)
                    {
                        ok[v[j] + v[i]] = 1;
                       // cout << j + v[i] << " ";
                    }
            for(int j = v[i]; j <= v[n]; j += v[i])
                if(ok[j] == 0)
                    {
                        ok[j] = 1;
                       // cout << j + v[i] << " ";
                    }
        }
    }
    cout << k << "\n";
    for(int i = 1; i <= k; i++)
        cout << ans[i] << "\n";
    return 0;
}