Cod sursa(job #1768062)
| Utilizator | 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;
}
