SHARE
TWEET

Untitled

DiaxPlayer Feb 17th, 2017 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <vector>
  2. #include <algorithm>
  3.  
  4. int negative(std::vector<int> & tab)
  5. {
  6.     if (tab.size() == 1)
  7.         return 0;
  8.     else if (tab.size() == 2)
  9.         return tab[0] > tab[1] ? tab[0] : tab[1];
  10.     else if (tab.size() == 3)
  11.         return tab[0]+tab[2] > tab[1] ? tab[0]+tab[2] : tab[1];
  12.     else if (tab.size() == 4)
  13.     {
  14.         return std::max(
  15.         {
  16.             tab[0] + tab[2],
  17.             tab[1] + tab[2],
  18.             tab[1] + tab[3]
  19.         });
  20.     }
  21.     else if (tab.size() == 5)
  22.     {
  23.         return std::max(
  24.         {
  25.             tab[1] + tab[3],
  26.             tab[0] + tab[2] + tab[3],
  27.             tab[0] + tab[2] + tab[4],
  28.             tab[1] + tab[2] + tab[4]
  29.         });
  30.     }
  31.     else if (tab.size() == 6)
  32.     {
  33.         return std::max(
  34.         {
  35.             tab[1] + tab[3] + tab[5],
  36.             tab[0] + tab[2] + tab[4],
  37.             tab[1] + tab[3] + tab[4],
  38.             tab[1] + tab[2] + tab[4],
  39.             tab[0] + tab[2] + tab[3] + tab[5]
  40.         });
  41.     }
  42.     return 0;
  43. }
  44.  
  45. int downStairs( const int T[], unsigned n )
  46. {
  47.     int sum = 0;
  48.     for (auto i = 0u; i < n; i++)
  49.     {
  50.         if (T[i] >= 0)
  51.         {
  52.             sum += T[i];
  53.         }
  54.         else  
  55.         {
  56.             std::vector<int> vec;
  57.             while (T[i] < 0  &&  i < n)
  58.             {
  59.                 vec.push_back(T[i]);
  60.                 i++;
  61.             }
  62.             i--;
  63.             sum += negative(vec);
  64.         }
  65.     }
  66.     return sum;
  67. }
RAW Paste Data
Top