Pagini recente » Cod sursa (job #2115140) | Cod sursa (job #1114961) | Cod sursa (job #1049430) | Cod sursa (job #2839737) | Cod sursa (job #1779962)
#include <fstream>
using namespace std;
int a[3][100001],w[5010],p[5010],n,gg,k;
void schimbare ()
{
int i;
for (i=gg;i>=0;i--)
a[1][i]=a[2][i];
}
int i,j;
int main()
{
ifstream fin ("energii.in");
ofstream fout ("energii.out");
fin>>n>>gg;
for (i=0;i<n;i++)
{
fin>>w[i]>>p[i];
}
for(i=0;i<=gg;i++)
{
a[1][i]=10010;
a[2][i]=10010;
}
/*for (k=0;k<=gg;k++)
fout<<a[1][k]<<" ";
fout<<'\n';
for (k=0;k<=gg;k++)
fout<<a[2][k]<<" ";
fout<<'\n'<<'\n';*/
for (i=0;i<n;i++)
{
for (j=gg;j>=0;j--)
if (w[i]<j) a[2][j]=min(a[1][j],a[1][j-w[i]]+p[i]);
else a[2][j]=min(a[1][j],p[i]);
/*for (k=0;k<=gg;k++)
fout<<a[1][k]<<" ";
fout<<'\n';
for (k=0;k<=gg;k++)
fout<<a[2][k]<<" ";
fout<<'\n'<<'\n';*/
schimbare();
}
if (a[1][gg]!=10010) fout<<a[1][gg];
else fout<<"-1";
return 0;
}