#include <vector>
#include <string>
#include <iostream>
#include <numeric>
#include <algorithm>
using namespace std;
string revs1(const vector<int>&n)
{
string r;
r = accumulate(n.rbegin(),n.rend(),r,
[](string r, int x) {
return r += to_string(x); } );
return r;
}
string revs2(const vector<int>&n)
{
string r;
r = accumulate(n.rbegin(),n.rend(),r,
[](string r, int x) {
string t = to_string(x);
reverse(t.begin(),t.end());
return r += t; } );
return r;
}
int main(int argc, const char * argv[])
{
vector<int> num = {12, 34, 56, 78};
cout << revs1(num) << endl;
cout << revs2(num) << endl;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKc3RyaW5nIHJldnMxKGNvbnN0IHZlY3RvcjxpbnQ+Jm4pCnsKICAgIHN0cmluZyByOwogICAgciA9IGFjY3VtdWxhdGUobi5yYmVnaW4oKSxuLnJlbmQoKSxyLAogICAgICAgICAgICAgIFtdKHN0cmluZyByLCBpbnQgeCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gciArPSB0b19zdHJpbmcoeCk7IH0gKTsKICAgIHJldHVybiByOwp9CgpzdHJpbmcgcmV2czIoY29uc3QgdmVjdG9yPGludD4mbikKewogICAgc3RyaW5nIHI7CiAgICByID0gYWNjdW11bGF0ZShuLnJiZWdpbigpLG4ucmVuZCgpLHIsCiAgICAgICAgICAgICAgW10oc3RyaW5nIHIsIGludCB4KSB7CiAgICAgICAgICAgICAgICAgIHN0cmluZyB0ID0gdG9fc3RyaW5nKHgpOwogICAgICAgICAgICAgICAgICByZXZlcnNlKHQuYmVnaW4oKSx0LmVuZCgpKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHIgKz0gdDsgfSApOwogICAgcmV0dXJuIHI7Cn0KCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICogYXJndltdKQp7CiAgICB2ZWN0b3I8aW50PiBudW0gPSB7MTIsIDM0LCA1NiwgNzh9OwogICAgY291dCA8PCByZXZzMShudW0pIDw8IGVuZGw7CiAgICBjb3V0IDw8IHJldnMyKG51bSkgPDwgZW5kbDsKfQoK