Pagini recente » Cod sursa (job #3150612) | Cod sursa (job #2057949) | Cod sursa (job #581937) | Cod sursa (job #2662854) | Cod sursa (job #927618)
Cod sursa(job #927618)
#include<iostream>
#include<fstream>
int gasire(int t[], int s)
{ int max=0;
for (int i=1; i<=s;i++) {if (t[i]>max) max=t[i];}
return(max);}
using namespace std;
struct obiect { short masa; int pret;};
int main(){
ifstream fil("rucsac.in");
int cap,n; fil >> n >> cap;
obiect a[n+1]; int b[cap+1];
for (int i=1; i<=n; i++) {fil >> a[i].masa >> a[i].pret;} fil.close();
for (int i=1; i<=cap; i++) b[i]=-1; b[0]=0;
for (int j=1; j<=n; j++) {
for (int i=cap; i>=0; i--) {
if (b[i]>=0) {if (a[j].masa+i<=cap) {
if (b[a[j].masa+i]<a[j].pret+b[i]) { b[a[j].masa+i]=a[j].pret+b[i];}
}
}
}}
ofstream dumb("rucsac.out");
dumb << gasire(b,cap); dumb.close();
cin.ignore(2);
return(0);
}