Jumping Mario
#include <algorithm>
#include <iostream>
#include <numeric>
#include <tuple>
#include <vector>
using namespace std;
tuple<int, int> count_jumps(const vector<int> &walls)
{
vector<int> jumps(walls.size());
adjacent_difference(walls.begin(), walls.end(), jumps.begin());
return {
count_if(jumps.begin() + 1, jumps.end(), [](int x) { return x > 0; }),
count_if(jumps.begin() + 1, jumps.end(), [](int x) { return x < 0; })
};
}
void test_case(int case_num)
{
int n;
cin >> n;
vector<int> walls(n);
for (auto &w : walls) cin >> w;
int high_jumps, low_jumps;
tie(high_jumps, low_jumps) = count_jumps(walls);
cout << "Case " << case_num << ": " << high_jumps << " " << low_jumps << endl;
}
int main()
{
int t;
cin >> t;
for (int i = 1; i <= t; i++) test_case(i);
return 0;
}