Pagini recente » Cod sursa (job #1862956) | Cod sursa (job #763946) | Cod sursa (job #1001427) | Cod sursa (job #2021021) | Cod sursa (job #1900405)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout ("rucsac.out");
struct ob
{
int g,p,i,dif;
}v[10000],aux;
int n,g;
void citire()
{
int i;
fin>>n>>g;
for (i=1;i<=n;i++)
{
fin>>v[i].g>>v[i].p;
v[i].dif=fabs(v[i].g-v[i].p);
v[i].i=i;
}
}
void sortare()
{
int i,j;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (v[i].dif>v[j].dif)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
else if (v[i].dif==v[j].dif)
{
if (v[i].p>v[j].p)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
else if (v[i].p==v[j].p)
{
if (v[i].g<v[j].g)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
}
}
}
int s,pt;
void rez()
{
int k=1;
while (s<=g)
{
s+=v[k].g;
pt+=v[k].p;
k++;
}
pt=pt-v[k-1].p;
}
//1 2 4 5 6
void afis()
{
int i;
for (i=1;i<=n;i++)
cout<<"greutate= "<<v[i].g<<" "<<"profit= "<<v[i].p<<" "<<" "<<"nr crt= "<<v[i].i<<" "<<" "<<v[i].dif<<'\n';
}
int main()
{
citire();
sortare();
//afis();
rez();
fout<<pt;
return 0;
}