Pagini recente » Cod sursa (job #2151449) | Cod sursa (job #381153) | Monitorul de evaluare | Cod sursa (job #607411) | Cod sursa (job #2044929)
#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;
}