Cod sursa(job #1990058)

Utilizator evelina.nitoiuNitoiu Evelina evelina.nitoiu Data 10 iunie 2017 12:22:42
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include<cstdio>

int d[10001];
struct ura{
  int x, y;
};
ura v[5001];
using namespace std;

int main() {

    int i, n, g, j, max;

    freopen("rucsac.in", "r",stdin);
    freopen("rucsac.out", "w",stdout);
    scanf( "%d%d", &n, &g);
    for(i=1;i<=n;i++) {
        scanf("%d%d", &v[i].x, &v[i].y);
    }
    for(i=1;i<=n;i++){
         for(j=g;j>=v[i].x;j--) {
        if(d[j-v[i].x]!=0 && d[j-v[i].x]+v[i].y>d[j]) {
          d[j]=d[j-v[i].x]+v[i].y;
        }
      }
      if(d[v[i].x]<v[i].y) {
         d[v[i].x]=v[i].y;
      }
    }
    max=0;
    for(i=1;i<=g;i++) {
        if(d[i]>max) {
            max=d[i];
        }
    }
    printf( "%d", max);
    return 0;
}