Cod sursa(job #1768062)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 30 septembrie 2016 09:21:17
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[20001];
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-1;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;
}