Cod sursa(job #1768063)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 30 septembrie 2016 09:24:43
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include<cstdio>
using namespace std;
int pg[10001];
int main()
{
    int n,gmax,i,j,p,g;
    FILE*fin,*fout;
    fin=fopen("rucsac.in","r");
    fscanf(fin,"%d%d",&n,&gmax);
    pg[0]=1;
    for(i=0;i<n;i++){
      fscanf(fin,"%d%d",&g,&p);
      for(j=gmax-g;j>=0;j--){
        if(pg[j]!=0){
          if(pg[j]+p>pg[j+g]);
            pg[j+g]=pg[j]+p;
        }
      }
    }
    fclose(fin);
    i=gmax;
    while(pg[i]==0)
      i--;
    fout=fopen("rucsac.out","w");
    fprintf(fout,"%d",pg[i]-1);
    fclose(fout);
    return 0;
}