Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int ObliczNas(bool* tab,int* s,int m)//obliczanie poziomu nasłonecznienia w habitacie
- {
- int wynik=0;
- for(int i=0;i<m;i++)
- if(tab[i] == true)
- wynik=wynik+s[i];
- return wynik;
- }
- int ObliczKoszt(bool* tab,int* c,int m)//obliczanie kosztu wybudowania luster w habitacie
- {
- int wynik=0;
- for(int i=0;i<m;i++)
- if(tab[i] == true)
- wynik=wynik+c[i];
- return wynik;
- }
- void depresja(int poziom,int* naslonecznienie,int *koszt,bool* tab_logiczna,int m,int &minimum)
- {
- int koszt=ObliczKoszt(tab_logiczna,koszt,poziom);//zmienna z przypisanym kosztem wybudowania luster w habitacie
- if(ObliczNas(tab_logiczna,naslonecznienie,poziom) == 0 && koszt<minimum && koszt!=0)//sprawdzanie czy nasłonecznienie jest idealne
- minimum = koszt;
- tab_logiczna[poziom] = false;
- if(poziom<m && koszt<minimum)//sprawdzanie czy wykonano sprawdzania dla wszystkich zestawów danych
- depresja(poziom+1,naslonecznienie,koszt,tab_logiczna,m,minimum);
- tab_logiczna[poziom] = true;
- if(poziom<m && koszt<minimum)//sprawdzanie czy wykonano sprawdzania dla wszystkich zestawów danych
- depresja(poziom+1,naslonecznienie,koszt,tab_logiczna,m,minimum);
- }
- int main()
- {
- ios_base::sync_with_stdio(0);
- int ile_hab;
- cin>>ile_hab;
- int m,minimum;
- int* naslonecznienie;
- int* koszt;
- bool* tab_logiczna;
- for(int i=0;i<ile_hab;++i)//petla sparwdzajaca ilosc habitatow/ilosc zestawow danych
- {
- cin>>m;
- minimum=10001;
- naslonecznienie= new int[m];//inicjalizowanie tablic dynamicznych o rozmiarze m
- koszt= new int[m];
- tab_logiczna=new bool[m];
- for(int j=0;j<m;++j)//wpisanie danych do tablic
- {
- cin>>naslonecznienie[j]>>koszt[j];
- tab_logiczna[j]=true;
- }
- depresja(0,naslonecznienie,koszt,tab_logiczna,m,minimum);
- if(minimum != 10001)//wypisanie minimalnego kosztu
- cout<<minimum<<endl;
- else cout<<"DEPRESJA"<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement