// recursiveTest.cpp : Defines the entry point for the console application.
//
#include <string>
#include <iostream>
#include <vector>
using namespace std;
void injectSpaces(vector<string>& wordsWithSpaces, vector<string>& words, vector<string>& spaces)
{
wordsWithSpaces.insert(wordsWithSpaces.end(), words.front());
words.erase(words.begin());
if (words.size() == 0) return;
wordsWithSpaces.insert(wordsWithSpaces.end(), spaces.front());
spaces.erase(spaces.begin());
injectSpaces(wordsWithSpaces, words, spaces);
}
vector<string> injectSpaces(vector<string>& words)
{
vector<string> wordsWithSpaces;
vector<string> spaces;
spaces.insert(spaces.begin(), words.size(), " ");
injectSpaces(wordsWithSpaces, words, spaces);
return wordsWithSpaces;
}
int main(int argc, char* argv[])
{
vector<string> words{ "i","need","some","spaces" };
for (string currWord : injectSpaces(words))
{
cout << currWord;
}
int i; cin >> i;
return 0;
}
Ly8gcmVjdXJzaXZlVGVzdC5jcHAgOiBEZWZpbmVzIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIGNvbnNvbGUgYXBwbGljYXRpb24uCi8vCiAKI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBpbmplY3RTcGFjZXModmVjdG9yPHN0cmluZz4mIHdvcmRzV2l0aFNwYWNlcywgdmVjdG9yPHN0cmluZz4mIHdvcmRzLCB2ZWN0b3I8c3RyaW5nPiYgc3BhY2VzKQp7Cgl3b3Jkc1dpdGhTcGFjZXMuaW5zZXJ0KHdvcmRzV2l0aFNwYWNlcy5lbmQoKSwgd29yZHMuZnJvbnQoKSk7Cgl3b3Jkcy5lcmFzZSh3b3Jkcy5iZWdpbigpKTsKCglpZiAod29yZHMuc2l6ZSgpID09IDApIHJldHVybjsKCgl3b3Jkc1dpdGhTcGFjZXMuaW5zZXJ0KHdvcmRzV2l0aFNwYWNlcy5lbmQoKSwgc3BhY2VzLmZyb250KCkpOwoJc3BhY2VzLmVyYXNlKHNwYWNlcy5iZWdpbigpKTsKCglpbmplY3RTcGFjZXMod29yZHNXaXRoU3BhY2VzLCB3b3Jkcywgc3BhY2VzKTsKfQoKdmVjdG9yPHN0cmluZz4gaW5qZWN0U3BhY2VzKHZlY3RvcjxzdHJpbmc+JiB3b3JkcykKewoJdmVjdG9yPHN0cmluZz4gd29yZHNXaXRoU3BhY2VzOwoJdmVjdG9yPHN0cmluZz4gc3BhY2VzOwoJc3BhY2VzLmluc2VydChzcGFjZXMuYmVnaW4oKSwgd29yZHMuc2l6ZSgpLCAiICIpOwoJIAoJaW5qZWN0U3BhY2VzKHdvcmRzV2l0aFNwYWNlcywgd29yZHMsIHNwYWNlcyk7CglyZXR1cm4gd29yZHNXaXRoU3BhY2VzOwp9CgogCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKIAl2ZWN0b3I8c3RyaW5nPiB3b3Jkc3sgImkiLCJuZWVkIiwic29tZSIsInNwYWNlcyIgfTsKIAoJZm9yIChzdHJpbmcgY3VycldvcmQgOiBpbmplY3RTcGFjZXMod29yZHMpKQoJewoJCWNvdXQgPDwgY3VycldvcmQ7Cgl9ICAKCglpbnQgaTsgY2luID4+IGk7CglyZXR1cm4gMDsKfQoK