Cod sursa(job #3246854)

Utilizator victorzarzuZarzu Victor victorzarzu Data 4 octombrie 2024 16:37:08
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

#define oo 0x3f3f3f3f

using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

int n, m;;
int dp[5005];
vector<pair<int, int>> gv;

void read() {
    int x, y;
    f>>n>>m;
    for(int i = 1;i <= n;++i) {
        f>>x>>y;
        gv.push_back(make_pair(x, y));
    }
    f.close();
}

void solve() {
  int maxim = 0;
  for(const auto& pr : gv) {
    for(int i = m - pr.first;i >= 0;--i) {
      dp[i + pr.first] = max(dp[i + pr.first], dp[i] + pr.second);
      maxim = max(dp[i + pr.first], maxim);
    }
  }
  g<<maxim;
} 


int main() {
    read();
    solve();
    return 0;
}