Cod sursa(job #2044929)

Utilizator mihailrazMihail Turcan mihailraz Data 21 octombrie 2017 16:54:48
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>
#include <algorithm>

using namespace std;
FILE * fi = fopen("rucsac.in", "r");
FILE * fo = fopen("rucsac.out", "w");
int n,g,w,p;
int lcurent=1;
int A[2][100005];

int main()
{
    fscanf(fi,"%d%d",&n,&g);
    for(int i=1; i<=n; i++)
    {
        fscanf(fi,"%d%d",&w,&p);
        for(int j=1; j<=g; j++)
        {
            A[lcurent][j]=A[1-lcurent][j];
            if(w<=j)
                A[lcurent][j]=max(A[1-lcurent][j],A[1-lcurent][j-w]+p);
        }
        lcurent=1-lcurent;
    }
    fprintf(fo,"%d",A[n%2][g]);
    fclose(fi);
    fclose(fo);
    return 0;
}