Pagini recente » Cod sursa (job #3242526) | Cod sursa (job #442577) | Cod sursa (job #1116274) | Cod sursa (job #2818245) | Cod sursa (job #895527)
Cod sursa(job #895527)
#include <fstream>
#include <stdio.h>
#define MAX_G 10000
using namespace std;
int N,G;
int P[MAX_G+5],V[MAX_G+5];
void PD(int k,int g,int p){
int i,n=G-g,s;
for(i=n;i>=0;i--){
s=g+i;
// if(V[i])
if(P[s]<P[i]+p){
P[s]=P[i]+p;
// V[s]=k;
}
}
// printf("intrat\n");
}
void write(){
int i;
for(i=0;i<=G;i++){
printf("%d -> %d %d\n",i,P[i],V[i]);
}
}
void Read(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d %d\n",&N,&G);
int i,g,p;
V[0]=-1;
for(i=1;i<=N;i++){
scanf("%d %d\n",&g,&p);
PD(i,g,p);
}
fclose(stdin);
// write();
// for(i=G;i>=0;i++)
// if(V[i]){
printf("%d",P[G]);
fclose(stdout);
// return;
// }
}
int main()
{
Read();
return 0;
}