#include <iostream>
#include <vector>
using namespace std;
const char _ssp_stx = 0x7f;
void stx_shrink(vector<char> &a)
{
if (a.size() < 2) return;
unsigned i = -1U, q = -1U, n = a.size() - 1;
while (++q < n)
if ((a[++i] = a[q]) == _ssp_stx && a[q+1] == _ssp_stx)
++q;
if (q == n)
a[++i] = a[q];
a.resize(i+1);
}
int main()
{
vector<char> a = { 0x7f, 0x10, 0x7f, 0x7f, 0x10, 0x7f, 0x7f, 0x7f, 0x7f, 0x11, 0x7f, 0x7f };
vector<char> b = { 0x7f, 0x10, 0x10, 0x10, 0x10, 0x7f };
vector<char> c = { 0x7f, 0x10, 0x10, 0x10, 0x7f, 0x7f };
vector<char> d = { 0x7f, 0x7f, 0x10, 0x10, 0x10, 0x7f };
vector<char> e = { 0x7f, 0x7f, 0x10, 0x10, 0x7f, 0x7f };
vector<char> f = { 0x7f, 0x7f };
vector<char> g = { 0x7f, 0x7f, 0x7f };
vector<char> h = { 0x7f, 0x7f, 0x7f, 0x7f };
vector<char> i = { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f };
vector<char> j = { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f };
stx_shrink(a); for (char x : a) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(b); for (char x : b) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(c); for (char x : c) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(d); for (char x : d) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(e); for (char x : e) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(f); for (char x : f) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(g); for (char x : g) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(h); for (char x : h) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(i); for (char x : i) cout << hex << (unsigned)x << ' '; cout << endl;
stx_shrink(j); for (char x : j) cout << hex << (unsigned)x << ' '; cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGNoYXIgX3NzcF9zdHggPSAweDdmOwoKdm9pZCBzdHhfc2hyaW5rKHZlY3RvcjxjaGFyPiAmYSkKewogIGlmIChhLnNpemUoKSA8IDIpIHJldHVybjsKCQogIHVuc2lnbmVkIGkgPSAtMVUsIHEgPSAtMVUsIG4gPSBhLnNpemUoKSAtIDE7CgogIHdoaWxlICgrK3EgPCBuKQogICAgaWYgKChhWysraV0gPSBhW3FdKSA9PSBfc3NwX3N0eCAmJiBhW3ErMV0gPT0gX3NzcF9zdHgpCiAgICAgICsrcTsKICAKICBpZiAocSA9PSBuKQogICAgYVsrK2ldID0gYVtxXTsKICAgIAogIGEucmVzaXplKGkrMSk7Cn0KCmludCBtYWluKCkKewogIHZlY3RvcjxjaGFyPiBhID0geyAweDdmLCAweDEwLCAweDdmLCAweDdmLCAweDEwLCAweDdmLCAweDdmLCAweDdmLCAweDdmLCAweDExLCAweDdmLCAweDdmIH07CiAgdmVjdG9yPGNoYXI+IGIgPSB7IDB4N2YsIDB4MTAsIDB4MTAsIDB4MTAsIDB4MTAsIDB4N2YgfTsKICB2ZWN0b3I8Y2hhcj4gYyA9IHsgMHg3ZiwgMHgxMCwgMHgxMCwgMHgxMCwgMHg3ZiwgMHg3ZiB9OwogIHZlY3RvcjxjaGFyPiBkID0geyAweDdmLCAweDdmLCAweDEwLCAweDEwLCAweDEwLCAweDdmIH07CiAgdmVjdG9yPGNoYXI+IGUgPSB7IDB4N2YsIDB4N2YsIDB4MTAsIDB4MTAsIDB4N2YsIDB4N2YgfTsKICB2ZWN0b3I8Y2hhcj4gZiA9IHsgMHg3ZiwgMHg3ZiB9OwogIHZlY3RvcjxjaGFyPiBnID0geyAweDdmLCAweDdmLCAweDdmIH07CiAgdmVjdG9yPGNoYXI+IGggPSB7IDB4N2YsIDB4N2YsIDB4N2YsIDB4N2YgfTsKICB2ZWN0b3I8Y2hhcj4gaSA9IHsgMHg3ZiwgMHg3ZiwgMHg3ZiwgMHg3ZiwgMHg3ZiB9OwogIHZlY3RvcjxjaGFyPiBqID0geyAweDdmLCAweDdmLCAweDdmLCAweDdmLCAweDdmLCAweDdmIH07CgogIHN0eF9zaHJpbmsoYSk7ICAgZm9yIChjaGFyIHggOiBhKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoYik7ICAgZm9yIChjaGFyIHggOiBiKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoYyk7ICAgZm9yIChjaGFyIHggOiBjKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoZCk7ICAgZm9yIChjaGFyIHggOiBkKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoZSk7ICAgZm9yIChjaGFyIHggOiBlKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoZik7ICAgZm9yIChjaGFyIHggOiBmKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoZyk7ICAgZm9yIChjaGFyIHggOiBnKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoaCk7ICAgZm9yIChjaGFyIHggOiBoKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoaSk7ICAgZm9yIChjaGFyIHggOiBpKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwogIHN0eF9zaHJpbmsoaik7ICAgZm9yIChjaGFyIHggOiBqKSBjb3V0IDw8IGhleCA8PCAodW5zaWduZWQpeCA8PCAnICc7ICAgY291dCA8PCBlbmRsOwoKICByZXR1cm4gMDsKfQ==