Pagini recente » Cod sursa (job #1398521) | Cod sursa (job #3219059) | Cod sursa (job #2590625) | Cod sursa (job #2664302) | Cod sursa (job #2389570)
//#include <iostream>
#include <fstream>
#include <vector>
#define f first
#define s second
#include <algorithm>
using namespace std;
ifstream cin ("rucsac.in");
ofstream cout ("rucsac.out");
vector <pair<int,int> > y;
vector <pair<int,int> > x;
long long n,i,g,j,k,dbg,dbp;
int main()
{
cin>>n>>g;
x.resize(n+1);
y.resize(n+1);
for (i=1;i<=n;++i)
{
cin>>x[i].f>>x[i].s;
dbg+=x[i].f;
dbp+=x[i].s;
}
sort(x.begin(),x.end());
if (dbg<=g) cout<<dbp;
else
{
y[1]=x[1];
for (i=2;i<=n;++i)
{
y[i].f=y[i-1].f+x[i].f;
y[i].s=y[i-1].s+x[i].s;
}
int db,maxi;
maxi=-9999;
db=0;
for (i=1;i<=n;++i)
for (j=i+1;j<=n;++j)
{
if (y[j].f-y[i].f<=g) db=y[j].s-y[i].s;
else db=0;
if (db>maxi) maxi=db;
}
cout<<maxi;
}
return 0;
}