Cod sursa(job #131683)
#include <fstream.h>
ifstream fin ("energii.in");
ofstream fout("energii.out");
int a[1010],sir[1000010],cost[1000010],n,K;
void citire()
{
fin>>n>>K;
for (int i=0;i<n;i++)
fin>>a[i];
fin.close();
}
void gen()
{
sir[0]=1;
for (int i=0;i<n;i++)
for (int j=K;j>=0;j--)
if (sir[j]==1)
{
sir[j+a[j]]=1;
cost[j+a[j]]=cost[j]+a[j];
}
long min=10000000;
for (int p=K;p<K+1002;p++)
if (sir[p]==1&& cost[p]<min)
min=cost[p];
fout<<min<<"\n";
}
int main ()
{
citire();
gen();
fout.close();
return 0;
}