Cod sursa(job #2389570)

Utilizator bogikanagyNagy Boglarka bogikanagy Data 27 martie 2019 11:33:05
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
//#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;
}