Pagini recente » Cod sursa (job #918725) | Cod sursa (job #120269) | Cod sursa (job #2026637) | Cod sursa (job #1086889) | Cod sursa (job #1135788)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct andu{int stanga,dreapta;};
andu v[5002];
bool sortare(andu a,andu b){
if(a.dreapta==b.dreapta)
if(a.stanga<b.stanga)
return true;
else
if(a.dreapta>b.dreapta)
return true;
else
return false;}
int main()
{
int greutate,n,i,s,p,pp;
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&greutate);
for(i=1;i<=n;i++){
scanf("%d%d",&v[i].stanga,&v[i].dreapta);}
sort(v+1,v+n+1,sortare);
s=0;
p=0;
pp=1;
for(i=1;i<=n&&pp==1;i++){
if(s<greutate){
p=p+v[i].dreapta;
s=s+v[i].stanga;}
if(s>greutate){
pp=0;
p=p-v[i].dreapta;}}
printf("%d",p);
return 0;
}