Mai intai trebuie sa te autentifici.
Cod sursa(job #477875)
Utilizator | Adrian Budau freak93 | Data | 16 august 2010 14:54:04 |
---|---|---|---|
Problema | Zebughil | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.78 kb |
#include<fstream>
using namespace std;
const char iname[]="zebughil.in";
const char oname[]="zebughil.out";
const int maxn=17;
const int maxv=(1<<maxn);
ifstream f(iname);
ofstream g(oname);
int dp[maxv],a[maxn],n,t,i,j,G,k;
int main()
{
t=3;
while(t--)
{
f>>n>>G;
for(i=0;i<n;++i)
f>>a[i];
for(i=0;i<(1<<n);++i)
dp[i]=-1;
dp[0]=G;
for(i=1;i<=n;++i)
{
for(j=0;j<(1<<n);++j)
{
if(dp[j]!=-1)
dp[j]=G;
for(k=0;k<n;++k)
if(j&(1<<k)&&dp[j-(1<<k)]-a[k]>dp[j])
dp[j]=dp[j-(1<<k)]-a[k];
}
if(dp[(1<<n)-1]>=0)
break;
}
g<<i<<"\n";
}
}