Advertisement
Stoycho_KK

различни програми на студент

Mar 23rd, 2021
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3.  
  4. const int DAYS_COUNT = 7;
  5. #define _pair std::pair<int, std::string>
  6.  
  7. void getPairs(_pair* myPair, std::vector<std::vector<_pair>>& mainData, std::vector<_pair> data, int daysLeft = DAYS_COUNT) {
  8.     for (int i = 0; i < 6; i++) {
  9.         if (daysLeft - myPair[i].first >= 0) {
  10.             data.push_back(myPair[i]);
  11.            
  12.             getPairs(myPair,mainData, data, daysLeft - myPair[i].first);
  13.            
  14.             data.pop_back();
  15.         }
  16.         else {
  17.             int areDaysEnough = 0;
  18.  
  19.             for (auto x : data)
  20.                 areDaysEnough += x.first;
  21.  
  22.             if (data.size() != 0 && std::count(mainData.begin(), mainData.end(), data) == false && areDaysEnough == DAYS_COUNT) {
  23.                 mainData.push_back(data);
  24.  
  25.                 for (auto x : data){
  26.                     std::cout << x.second << std::endl;
  27.                 }
  28.  
  29.                 std::cout << std::endl;
  30.             }
  31.         }
  32.  
  33.     }
  34. }
  35.  
  36. int main() {
  37.     _pair collection[7] = {
  38.         {2, "diplom"}, {2, "trip"}, {2, "party"}, {1, "exam"}, {1, "nothing"}, {1, "games"} };
  39.  
  40.     std::vector<std::vector<_pair>> mainData;
  41.     std::vector<_pair> data;
  42.  
  43.     getPairs(collection, mainData, data);
  44.     std::cout << "Answer: " << mainData.size();
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement