Pagini recente » Cod sursa (job #876126) | Cod sursa (job #2041665) | Cod sursa (job #1551559) | Cod sursa (job #768816) | Cod sursa (job #1526199)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
typedef struct{
int g,val;
float rap;
}RUCSAC;
RUCSAC v[50001]; int G,n,i;
void citire(){
fin>>n>>G;
for(i=1;i<=n;i++){
fin>>v[i].g>>v[i].val;
v[i].rap=(float)v[i].val/v[i].g;
}
}
bool comp(RUCSAC a, RUCSAC b){
return a.rap>b.rap;
}
void greedy(){
sort(v+1,v+n+1,comp);
int profit=0;
for(int i=1;i<=n&&G>=0;i++)
{
if(v[i].g<=G){
profit=profit+v[i].val;
G=G-v[i].g;
}
}
fout<<profit;
fout.close();
}
int main(){
citire();
greedy();
}