#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
std::string reverseMiddleWords(const std::string& s) {
std::stringstream ss(s);
std::vector<std::string> words;
std::string word;
// Split into words
while (ss >> word) {
words.push_back(word);
}
// If fewer than 3 words, nothing to reverse
if (words.size() < 3) return s;
// Reverse middle words
for (size_t i = 1; i < words.size() - 1; ++i) {
reverse(words[i].begin(), words[i].end());
}
// Rebuild the string
std::string result;
for (size_t i = 0; i < words.size(); ++i) {
result += words[i];
if (i + 1 < words.size()) result += " ";
}
return result;
}
int main() {
std::string input = "Hello how are you today";
std::cout << reverseMiddleWords(input) << std::endl;
}
/*
run:
Hello woh era uoy today
*/