Pagini recente » Cod sursa (job #38329) | Cod sursa (job #44212) | Cod sursa (job #2944586) | Cod sursa (job #1193133) | Cod sursa (job #583861)
Cod sursa(job #583861)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int g[10200][2],m[50200];
bool u[5503][5503];
int G,W;
int main()
{
int i,k,j,s=0,mx;
in>>G>>W;
for(i=0;i<G;i++)
in>>g[i][0]>>g[i][1],s+=g[i][0];
in.close();
if(s<W){out<<-1<<'\n';return 0;}
else{
m[0]=1;
for(i=0;i<G;i++)
{
for(j=W;j>=0;j--)
if (m[j] && ((g[i][1]+m[j]<m[j+g[i][0]])||(m[j+g[i][0]]==0)))
m[j+g[i][0]]=g[i][1]+m[j];
}
mx=m[W];
for (i=W+1;i<=s;i++)
if ( m[i]<mx && m[i] ) mx=m[i];
out<<mx-1<<'\n';}
out.close();
return 0;
}