Cod sursa(job #1196911)

Utilizator apopeid15Apopei Daniel apopeid15 Data 9 iunie 2014 19:07:21
Problema Zebughil Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
using namespace std;
ifstream f("zebughil.in");
ofstream g("zebughil.out");
int i,j,n,gr,conf,put,d[1<<18],a[20];
int main()
{
    for(int t=3;t;--t)
    {
        f>>n>>gr;
        for(i=1;i<=n;++i)
        f>>a[i];
        put=(1<<n);
        for(conf=0;conf<put;++conf)
        d[conf]=-1;
        d[0]=gr;
        for(i=1;i<=n;++i)
        {
            for(conf=0;conf<put;++conf)
            {
                if(d[conf]!=-1)
                {
                    d[conf]=gr;
                }
                for(j=1;j<=n;++j)
                if(conf&&(1<<(j-1))&&d[conf^(1<<(j-1))]-a[j]>d[conf])
                d[conf]=d[conf^(1<<(j-1))]-a[j];
            }
            if(d[put-1]!=-1)
            {
                g<<i<<'\n';
                break;
            }
        }
    }
    return 0;
}