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