Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- typedef struct lustra
- {
- int naslonecznienie;
- int koszt;
- }lustra;
- void rek_lustra(lustra *& tab, int zaglebienie, int & minimiasta, int koszt, int naslonecznienie, int & wynik)
- {
- if(zaglebienie==minimiasta)
- {
- if(naslonecznienie==0 && koszt>0)
- {
- wynik=koszt;
- }
- }
- else
- {
- if(wynik>koszt+tab[zaglebienie].koszt || wynik==0)
- {
- rek_lustra(tab, zaglebienie+1, minimiasta, tab[zaglebienie].koszt+koszt, tab[zaglebienie].naslonecznienie+naslonecznienie, wynik);
- }
- rek_lustra(tab, zaglebienie+1, minimiasta, koszt, naslonecznienie, wynik);
- }
- }
- int main()
- {
- int habitaty;
- cin >> habitaty;
- lustra** tab = new lustra*[habitaty];
- int* wynik = new int[habitaty];
- for(int i=0; i<habitaty; i++)
- {
- int minimiasta;
- cin >> minimiasta;
- tab[i]=new lustra[minimiasta];
- for(int j=0; j<minimiasta; j++)
- {
- cin>>tab[i][j].naslonecznienie>>tab[i][j].koszt;
- }
- wynik[i]=0;
- //tu funkcja
- rek_lustra(tab[i], 0, minimiasta, 0, 0, wynik[i]);
- }
- for(int i=0; i<habitaty; i++)
- {
- if(wynik[i]>0)
- {
- cout << wynik[i] << "\n";
- }
- else
- {
- cout << "DEPRESJA\n";
- }
- delete [] tab[i];
- }
- delete [] tab;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement