Cod sursa(job #3265952)

Utilizator PetyAlexandru Peticaru Pety Data 4 ianuarie 2025 14:07:22
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("energii.in");
ofstream fout ("energii.out");

int dp[5001], e[1001], c[1001], n, w;

int main()
{
  fin >> n >> w;
  
  for (int i = 0; i <= w; i++)
    dp[i] = INT_MAX;
  dp[0] = 0;
  for (int i = 1; i <= n; i++)
    fin >> e[i] >> c[i];
  int sol = INT_MAX;
  for (int i = 1; i <= n; i++) {
    for (int j = w; j >= 0; j--) {
      if (dp[j] != INT_MAX) {
        if (j + e[i] <= w) {
          dp[j + e[i]] = min(dp[j + e[i]], dp[j] + c[i]);
        }
      }
    }
  }
  for (int i = 1; i <= w; i++) {
    if (dp[i] != INT_MAX)
      sol = min(sol, dp[i]);
  }
  if (sol == INT_MAX)
    fout << -1;
  else
    fout << sol;
  return 0;
}