Cod sursa(job #1987970)

Utilizator Arsene_DenisaArsene Denisa Arsene_Denisa Data 1 iunie 2017 18:35:57
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include<stdio.h>

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

int main() {
    FILE *fin, *fout;
    int i, n, g, j, max;

    fin=fopen("rucsac.in", "r");
    fout=fopen("rucsac.out", "w");
    fscanf( fin, "%d%d", &n, &g);
    for(i=1;i<=n;i++) {
        fscanf( fin , "%d%d", &v[i].x, &v[i].y);
    }
    for(i=1;i<=n;i++){
         for(j=g;j>=1;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];
        }
    }
    fprintf( fout, "%d", max);


    fclose( fin );
    fclose( fout );
    return 0;
}