Pagini recente » Cod sursa (job #1363998) | Cod sursa (job #2781161) | Cod sursa (job #1356297) | Diferente pentru utilizator/mathboy intre reviziile 77 si 158 | Cod sursa (job #3173001)
#include<fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int s,g,n;
struct obiect
{
int gr,val;
}v[5001];
void citire()
{
cin>>n>>g;
for(int i=1;i<=n;i++)
cin>>v[i].gr>>v[i].val;
}
void ordonare()
{
for(int i=1;i<=n-1;i++)
for(int j=i+1;j<=n;j++)
if(v[i].val/v[i].gr>v[j].val/v[i].gr)
{
v[0]=v[i];
v[i]=v[j];
v[j]=v[0];
}
}
int solutie()
{
int ok=0;
for(int i=n;i>=1&&ok==0;i--)
if(g-v[i].gr>=0)
{
g=g-v[i].gr;
s=s+v[i].val;
}
else ok=1;
return s;
}
int main()
{
citire();
ordonare();
cout<<solutie();
return 0;
}