Cod sursa(job #778981)

Utilizator visanrVisan Radu visanr Data 16 august 2012 13:59:21
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;


int N, v[1010], sol, ap[50010], X;
vector<int> Vsol;

int main()
{
    freopen("economie.in", "r", stdin);
    freopen("economie.out", "w", stdout);
    int i, j;
    scanf("%i", &N);
    for(i = 1; i <= N; i++) scanf("%i", &v[i]);
    sort(v + 1, v + N + 1);
    for(i = 1; i <= N; i++)
    {
          X = v[i];
          if(ap[X] == 0)
          {
                      sol ++;
                      Vsol.push_back(X);
                      for(j = 0; j + X <= 50000; j ++)
                            if(ap[j] == 1 || j == 0) 
                                     ap[j + X] = 1;
          }
    }
    printf("%i\n", sol);
    for(i = 0; i < sol; i++) printf("%i\n", Vsol[i]);
    return 0;
}