#include <cstdio> #include <vector> #include <algorithm> #include <cassert> using namespace std; int main() { int n, m; scanf("%d%d", &n, &m); vector<int> przedmioty(n), plecaki(m); for (int i = 0; i < n; ++i) scanf("%d", &przedmioty[i]); for (int i = 0; i < m; ++i) scanf("%d", &plecaki[i]); sort(plecaki.rbegin(), plecaki.rend()); sort(przedmioty.rbegin(), przedmioty.rend()); if (przedmioty[0] > plecaki[0]) { printf("NIE\n"); return 0; } int result = 0; vector<int> backpack_cap(1, plecaki[0]); for (int i = 0; i < n; ++i) { int os = przedmioty[i]; int idx = -1; for (int k = 0; k < backpack_cap.size(); ++k) { if (os <= backpack_cap[k]) if (idx == -1 || backpack_cap[idx] > backpack_cap[k]) idx = k; } if (idx == -1) { backpack_cap.push_back(plecaki[0]); idx = backpack_cap.size()-1; } backpack_cap[idx] -= os; } // for (int i = 0; i < backpack_cap.size(); ++i) // printf("%d ", backpack_cap[i]); // printf("\n"); printf("%d\n", backpack_cap.size()); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <cstdio> #include <vector> #include <algorithm> #include <cassert> using namespace std; int main() { int n, m; scanf("%d%d", &n, &m); vector<int> przedmioty(n), plecaki(m); for (int i = 0; i < n; ++i) scanf("%d", &przedmioty[i]); for (int i = 0; i < m; ++i) scanf("%d", &plecaki[i]); sort(plecaki.rbegin(), plecaki.rend()); sort(przedmioty.rbegin(), przedmioty.rend()); if (przedmioty[0] > plecaki[0]) { printf("NIE\n"); return 0; } int result = 0; vector<int> backpack_cap(1, plecaki[0]); for (int i = 0; i < n; ++i) { int os = przedmioty[i]; int idx = -1; for (int k = 0; k < backpack_cap.size(); ++k) { if (os <= backpack_cap[k]) if (idx == -1 || backpack_cap[idx] > backpack_cap[k]) idx = k; } if (idx == -1) { backpack_cap.push_back(plecaki[0]); idx = backpack_cap.size()-1; } backpack_cap[idx] -= os; } // for (int i = 0; i < backpack_cap.size(); ++i) // printf("%d ", backpack_cap[i]); // printf("\n"); printf("%d\n", backpack_cap.size()); } |