Cod sursa(job #983395)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 11 august 2013 18:00:35
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("economie.in");
ofstream g("economie.out");
int N,Array[1003],Solution[1003],result_coins;
bool Exist_Sum[50003];
void Read()
{
    int i;
    f>>N;
    for(i=1;i<=N;i++)
        f>>Array[i];
    sort(Array+1,Array+N+1);
}
void Solve_Dinamic()
{
    int i;
    Exist_Sum[0]=1;
    for(i=1;i<=N;i++)
        if(Exist_Sum[Array[i]]==0)
        {
            Solution[++result_coins]=Array[i];
            for(int j=0;j+Array[i]<=50000;j++)
                if(Exist_Sum[j]==1)
                    Exist_Sum[j+Array[i]]=1;
        }
}
void Print()
{
    int i;
    g<<result_coins<<"\n";
    for(i=1;i<=result_coins;i++)
        g<<Solution[i]<<"\n";
}
int main()
{
    Read();
    Solve_Dinamic();
    Print();
    return 0;
}