Pagini recente » Cod sursa (job #1091520) | Cod sursa (job #2206040) | Cod sursa (job #2025912) | Cod sursa (job #2000107) | Cod sursa (job #2291738)
#include <fstream>
#include <set>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout("rucsac.out");
int n,g,i,j;
pair<int,int> v[5005];
void citire(){
fin>>n>>g;
for (i=1;i<=n;i++)
fin>>v[i].first>>v[i].second;
}
void sortare(){
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
if (v[i].first<v[j].first)
swap(v[i],v[j]);
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
if (v[i].second<v[j].second && v[i].first==v[j].first)
swap(v[i],v[j]);
}
int rucsac(){
int k=0;
int i=0;
int sol=0;
while (k<g && i<n){
i++;
if (k+v[i].first<=g){
k+=v[i].first;
sol+=v[i].second;
}
}
return sol;
}
int main(){
citire();
sortare();
fout<<rucsac();
fin.close();
fout.close();
return 0;
}