Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <algorithm>
- int negative(std::vector<int> & tab)
- {
- if (tab.size() == 1)
- return 0;
- else if (tab.size() == 2)
- return tab[0] > tab[1] ? tab[0] : tab[1];
- else if (tab.size() == 3)
- return tab[0]+tab[2] > tab[1] ? tab[0]+tab[2] : tab[1];
- else if (tab.size() == 4)
- {
- return std::max(
- {
- tab[0] + tab[2],
- tab[1] + tab[2],
- tab[1] + tab[3]
- });
- }
- else if (tab.size() == 5)
- {
- return std::max(
- {
- tab[1] + tab[3],
- tab[0] + tab[2] + tab[3],
- tab[0] + tab[2] + tab[4],
- tab[1] + tab[2] + tab[4]
- });
- }
- else if (tab.size() == 6)
- {
- return std::max(
- {
- tab[1] + tab[3] + tab[5],
- tab[0] + tab[2] + tab[4],
- tab[1] + tab[3] + tab[4],
- tab[1] + tab[2] + tab[4],
- tab[0] + tab[2] + tab[3] + tab[5]
- });
- }
- return 0;
- }
- int downStairs( const int T[], unsigned n )
- {
- int sum = 0;
- for (auto i = 0u; i < n; i++)
- {
- if (T[i] >= 0)
- {
- sum += T[i];
- }
- else
- {
- std::vector<int> vec;
- while (T[i] < 0 && i < n)
- {
- vec.push_back(T[i]);
- i++;
- }
- i--;
- sum += negative(vec);
- }
- }
- return sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement