Cod sursa(job #114217)

Utilizator blasterzMircea Dima blasterz Data 13 decembrie 2007 14:01:48
Problema Economie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
using namespace std;
#include <cstdio>
#include <fstream>
#include <iostream>
#include <algorithm>
#define N 50000
bool x[60001];
int a[2001];
int sol[2001];
int nsol;

int main()
{
  ifstream f("economie.in");
  ofstream g("economie.out");
  int i, n, j;
  f>>n;
  for(i=1;i<=n;++i) f>>a[i];

  sort(a+1, a+n+1);

  sol[++nsol]=a[1];

  for(i=a[1]; i<=N; i+=a[1]) x[i]=1;

  for(i=2;i<=n;++i)
    if(x[a[i]])continue;
    else
      {
	sol[++nsol]=a[i];
	for(j=1;j<=N;++j)
	  if(x[j])
	    if(j+a[i]<=N) x[j+a[i]]=1;
      }

  g<<nsol<<"\n";
  for(i=1;i<=nsol;++i) g<<sol[i]<<"\n";
  return 0;
}