Cod sursa(job #588301)

Utilizator stef93Stefan Gilca stef93 Data 7 mai 2011 17:29:19
Problema Zebughil Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#define OB 17
#define M (1<<17)
using namespace std;

ifstream in("zebughil.in");
ofstream out("zebughil.out");

int best[OB],g[M];
int n,G,k;


int main()
{
    int i,j,t;
    for(t=3;t;--t)
    {
        in>>n>>G;
        for(i=0;i<n;++i)in>>g[i];
        for(i=0;i<(1<<n);++i)
        best[i]=-1;
        best[0]=G;
        for(i=1;i<=n;++i)
        {
            for(j=0;j<(1<<n);++j)
            {
                if(best[j]!=-1)
                best[j]=G;
                for(k=0;k<n;++k)
                    if(j&(1<<k)&&best[j-(1<<k)]-g[k]>best[j])
                            best[j]=best[j-(1<<k)]-g[k];
            }
            if(best[(1<<n)-1]>=0)
            break;
        }
        out<<i<<"\n";
    }
    in.close();
    out.close();
    return 0;
}