Mai intai trebuie sa te autentifici.
Cod sursa(job #3141575)
Utilizator | Data | 14 iulie 2023 16:37:22 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.73 kb |
//https://infoarena.ro/problema/rucsac
#include <bits/stdc++.h>
using namespace std;
int n,k;
int u = 0;
int main(){
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
cin >> k >> n;
int G[n+1], C[n+1], D[2][n+1];
for(int i=1; i<=k; i++){
cin >> G[i] >> C[i];
}
for(int i=0; i<=n; i++){
D[!u][i] = 0;
}
for(int i=1; i<=k; i++, u = !u){
for(int j=1; j<=n; j++){
if(j - G[i] >= 0){
D[u][j] = max(D[!u][j - G[i]] + C[i], D[!u][j]);
// cout << D[i][j] << ' ';
} else {
D[u][j] = D[!u][j];
// cout << D[i][j] << ' ';
}
}
// cout << endl;
}
cout << D[!u][n];
}