Pagini recente » Cod sursa (job #1661005) | Cod sursa (job #2042746) | Cod sursa (job #1998652) | Cod sursa (job #2464866) | Cod sursa (job #1779939)
#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=1;i<=n;i++)
{
fin>>w[i]>>p[i];
}
for(i=0;i<=gg;i++)
{
a[1][i]=gg;
a[2][i]=gg;
}
/* 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=1;i<=n;i++)
{
for (j=gg;j>=0;j--)
if (w[i]<=j) a[2][j]=max(a[1][j],a[1][j-w[i]]+p[i]);
else a[2][j]=max(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][1]!=10010) fout<<a[1][1];
else fout<<"-1";
return 0;
}