Cod sursa(job #2156719)

Utilizator mateicosCostescu Matei mateicos Data 8 martie 2018 22:41:00
Problema Problema rucsacului Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#include <algorithm>

using namespace std;

struct kk{
  int m, g;
  float p;
}v[5005];

int d[10005];

int main()
{
    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);
    int n, m, pr, g, i, s, nr, j;
    scanf("%d%d", &n, &m);
    for(i = 0;i < n;i++){
      scanf("%d%d", &g, &pr);
      v[i].g = g;
      v[i].m = pr;
    }
    nr = 0;
    for(i = 0;i < n;i++){
      for(j = nr;j >= 0;j--){
        if(j + v[i].g <= m){
          if(d[j + v[i].g] < d[j] + v[i].m){
            d[j + v[i].g] = d[j] + v[i].m;
            if(d[j + v[i].g] > nr)
              nr = d[j + v[i].g];
          }
        }
      }
    }
    printf("%d", nr);
    return 0;
}