Помогу решить задачи по программированию (школьникам, студентам) бесплатно.
Языки программирования: C++, Pascal, Python.
Например:
Дано N предметов массой m1, …, mN и стоимостью c1, …, cN соответственно.
Ими наполняют рюкзак, который выдерживает вес не более M. Какую наибольшую стоимость могут иметь предметы в рюкзаке?
Формат входных данныхВ первой строке вводится натуральное число N, не превышающее 100 и натуральное число M, не превышающее 10000.
Во второй строке вводятся N натуральных чисел mi, не превышающих 100.
Во третьей строке вводятся N натуральных чисел сi, не превышающих 100.
Формат выходных данныхВыведите одно целое число: наибольшую возможную стоимость рюкзака.
Код
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector <int> a(n+1), b(n+1);
for(int i = 1; i <= n; cin >> a[i++]);
for(int i = 1; i <= n; cin >> b[i++]);
vector < vector <int> > dp(n+1, vector <int> (m+1));
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
dp[i][j] = max(dp[i-1][j], (j >= a[i] ? dp[i-1][j-a[i]]+b[i] : 0));
}
}
cout << dp[n][m];
}
P.S. Выкладывайте задания в спойлерах