Cod sursa(job #2201863)

Utilizator Andrei_CotorAndrei Cotor Andrei_Cotor Data 6 mai 2018 12:45:10
Problema Zebughil Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
using namespace std;
ifstream fi("zebughil.in");
ofstream fo("zebughil.out");
int n,g,A[20],i,j,val,t;
pair<int,int> Dp[131075];
int main()
{
    for(t=1; t<=3; t++)
    {
        fi>>n>>g;
        for(i=1; i<=n; i++)
            fi>>A[i];
        for(i=1; i<(1<<n); i++)
            Dp[i]={1000000000,0};
        for(i=0; i<(1<<n); i++)
            for(j=0; j<n; j++)
                if(!(i&(1<<j)))
                {
                    val=i+(1<<j);
                    if(g-Dp[i].second>=A[j+1])
                        Dp[val]=min(Dp[val],{Dp[i].first,Dp[i].second+A[j+1]});
                    else
                        Dp[val]=min(Dp[val],{Dp[i].first+1,A[j+1]});
                }
        if(Dp[(1<<n)-1].second>0)
            fo<<Dp[(1<<n)-1].first+1<<"\n";
        else
            fo<<Dp[(1<<n)-1].first<<"\n";
    }
    fi.close();
    fo.close();
    return 0;
}