Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const int N = 5;
- int t[N] = { 1, 3, 5, 8, 20 };
- bool tab1[N] = { 0 };
- bool tab2[N] = { 0 };
- /*1. Bierzemy ciężarek na pustą część
- 2. Nie Bierzemy ciężarka na żadną część
- 3. Bierzemy ciężarek na zajętą część*/
- bool waga(int n, int j, int czy_zabrany = 0) { // dany do pustej - 1 dany do kruszca - 2 nie brany nigdzie - 3
- if (czy_zabrany == 1) {
- tab1[j - 1] = true;
- tab2[j - 1] = false;
- }
- else if (czy_zabrany == 2) {
- tab1[j - 1] = false;
- tab2[j - 1] = true;
- }
- else if (czy_zabrany == 3){
- tab1[j - 1] = tab2[j - 1] = false;
- }
- if (n == 0) {
- cout << "Dodane do pustego ciezarki: ";
- for (int i = 0; i < N; i++) { // wypisanie ciężarków, dla których wartość bool w tablicy tab jest równa "true"
- if (tab1[i]) { cout << t[i] << " "; }
- }
- cout << "\nDodane do kruszca ciezarki: ";
- for (int i = 0; i < N; i++) {
- if (tab2[i]) { cout << t[i] << " "; }
- }
- cout << endl;
- }
- if (j == N) {
- return false; }
- return (waga(n - t[j], j + 1, 1) || waga(n + t[j], j + 1, 2) || waga(n, j + 1, 3));
- }
- int main() {
- cout << "\n" << waga(10, 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement