Pagini recente » Cod sursa (job #1116607) | Cod sursa (job #2892737) | Cod sursa (job #3268506) | Cod sursa (job #2547504) | Cod sursa (job #2550832)
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <functional>
#include <fstream>
#include <iostream>
#define vmax (1<<17)
using namespace std;
ifstream f("zebughil.in");
ofstream g("zebughil.out");
int dp[vmax],N,G,v[20];
int main()
{
for(int qrr=1;qrr<=3;qrr++)
{
f>>N>>G;
int n=(1<<N);
for(int i=1;i<=N;i++)
f>>v[i];
for(int i=1;i<=n;i++) dp[i]=-1;
dp[0]=G;
for(int i=1;i<=N;i++)
{
for(int j=1;j<n;j++)
{
if(dp[j]!=-1) dp[j]=G;
for(int d=1;d<=N;d++)
{
if(j&(1<<(d-1))&&dp[j-(1<<(d-1))]-v[d]>dp[j])
{
dp[j]=dp[j-(1<<(d-1))]-v[d];
}
}
}
if(dp[n-1]>-1) {g<<i<<'\n';break;}
}
}
}