Pagini recente » Cod sursa (job #2413797) | Cod sursa (job #1925054) | Cod sursa (job #2769696) | Cod sursa (job #3240305) | Cod sursa (job #3233166)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
struct obj{int g,pr;};
bool cmp(obj o1,obj o2)
{
return (o1.pr>o2.pr);
}
int main()
{
long long int n,G;
cin>>n>>G;
obj v[5001];
for(int i=1;i<=n;i++)
cin>>v[i].g>>v[i].pr;
sort(v+1,v+n+1,cmp);
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
if(v[i].pr==v[j].pr)
if(v[i].g>v[j].g)
swap(v[i],v[j]);
int S=0,P=0,i=1;
while(S<G&&i<=n)
{
if(S+v[i].g<=G)
S+=v[i].g;
P+=v[i].pr;
i++;
}
cout<<P;
}