Cod sursa(job #1985284)

Utilizator DragosArseneDragos Arsene DragosArsene Data 27 mai 2017 13:30:24
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <stdio.h>
using namespace std;
struct gg{int greutate, pret;};
gg v[5001];
int d[10001];
int main() {
  FILE *fin, *fout;
  int max, n, greut, i, j;

fin = fopen("rucsac.in","r");
fout = fopen("rucsac.out","w");

fscanf(fin,"%d%d", &n, &greut);
for(i=1;i<=n;i++){
  fscanf(fin,"%d%d", &v[i].greutate, &v[i].pret);
}
for(i=1;i<=n;i++){
  if(d[v[i].greutate]<v[i].pret)
    d[v[i].greutate]=v[i].pret;
  for(j=greut;j>=1;j--){
    if(d[j-v[i].greutate]!=0&&d[j-v[i].greutate]+v[i].pret)
    d[j]=d[j-v[i].greutate]+v[i].pret;
  }
}
max=0;
for(j=greut;j>=1;j--){
if(d[j]>max)
  max=d[j];
}
fprintf(fout,"%d", max);
fclose(fin);
fclose(fout);
    return 0;
}