Cod sursa(job #3340792)

Utilizator WiseAndrei4Vetrila Andrei WiseAndrei4 Data 16 februarie 2026 14:11:28
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
#include <cstring>
#define ll long long
using namespace std;
ifstream fin("rucsac.in");
ofstream gout("rucsac.out");
struct str
{
    int g,v;
};
int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(0);gout.tie(0);
    int n,g,i,j;
    fin>>n>>g;
    vector<str>v(n);
    for(i=0; i<n; ++i)fin>>v[i].g>>v[i].v;
    sort(v.begin(),v.end(),[](const str&s1,const str&s2)->bool
    {
        return s1.v*s2.g<s2.v*s1.g;
    });
    vector<int>ans(g+1);
    for(i=0; i<n; ++i)
        for(j=g; j>=v[i].g; --j)
            ans[j]=max(ans[j],v[i].v+ans[j-v[i].g]);
    gout<<ans[g];
    return 0;
}