Pagini recente » Cod sursa (job #271649) | Cod sursa (job #9920) | Cod sursa (job #2056489) | Cod sursa (job #3255331) | Cod sursa (job #1781666)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int n,g,i,j,a[5001][3],ok=1,n1;
in>>n>>g;
for (i=1; i<=n; i++)
in>>a[i][1]>>a[i][2];
n1=n;
while (ok==1)
{
ok=0;
for (i=1; i<n1; i++)
if (a[i][2]<a[i+1][2])
{
a[0][0]=a[i][1];
a[i][1]=a[i+1][1];
a[i+1][1]=a[0][0];
a[0][0]=a[i][2];
a[i][2]=a[i+1][2];
a[i+1][2]=a[0][0];
ok=1;
}
else
if (a[i][2]==a[i+1][2] && a[i][1]>a[i+1][1])
{
a[0][0]=a[i][1];
a[i][1]=a[i+1][1];
a[i+1][1]=a[0][0];
}
n1--;
}
/*for (i=1; i<=n; i++)
cout<<a[i][1]<<' '<<a[i][2]<<'\n';*/
n1=0;
j=0;
for (i=1; j<g; i++)
{
if (j+a[i][1]<=g)
{
n1+=a[i][2];
j+=a[i][1];
}
else
break;
}
out<<n1;
}