Cod sursa(job #1778807)

Utilizator Alex.PAlexandru Pacurar Alex.P Data 14 octombrie 2016 10:10:07
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int v[10001];

int maxim(int a, int b){
  if(a<b)
    a=b;
  return a;
}

int main()
{
    FILE *fin, *fout;
    int n,gmax,g,val,max,i;
    fin=fopen("rucsac.in","r");
    fout=fopen("rucsac.out","w");
    fscanf(fin,"%d%d",&n,&gmax);
    max=0;
    v[0]=0;
    for(n;n>0;n--){
      fscanf(fin,"%d%d",&g,&val);
      for(i=gmax;i>=g;i--){
        if(v[i-g]!=0 || i==g)
          v[i]=maxim(v[i],v[i-g]+val);
      }
    }
    fprintf(fout,"%d",v[gmax]);
    return 0;
}