//
#include <iostream>
using namespace std;
struct StockPrice {
struct P {
long buy;
long sell;
P() : buy(0), sell(0) {
}
};
// collect a buy / sell and maximise a profit on stock price series
void compute(const vector<string>& v) {
P walk;
vector<P> res;
for (const auto& it : v) {
auto num = strtol(it.c_str(), NULL, 0);
if ((!walk.buy && !walk.sell) || (walk.buy > num && !walk.sell)) {
// finding local minima
walk.buy = num;
}
else if (!walk.sell || (walk.buy && walk.sell < num)) {
walk.sell = num;
}
else {
res.emplace_back(walk);
walk = P();
walk.buy = num;
}
}
if (walk.buy && walk.sell) {
res.emplace_back(walk);
}
}
};