// From http://w...content-available-to-author-only...n.ru/forum/job/5103906.1
#include <stdio.h>
#include <assert.h>
char *group(char *S) {
int i;
char *p = S+1;
for (; *p; ++p ) {
char *pp = p-1;
for (; pp >= S; --pp) {
if ( *pp == *p ) // is not first
{
break; // <----------------
}
}
}
return S;
}
int main() {
int i;
char test[5][30] = {
"vvabcbbcc",
"asdfrrafdsr",
"abcdefgijkl",
"010101010101",
"totobobolol"
};
for ( i = 0; i < 5; ++i ) {
printf("%s\n",group
(test
[i
])); }
}
Ly8gRnJvbSBodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ubi5ydS9mb3J1bS9qb2IvNTEwMzkwNi4xCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPGFzc2VydC5oPgoKY2hhciAqZ3JvdXAoY2hhciAqUykgewogICAgaW50IGk7CiAgICBjaGFyICpwID0gUysxOwogICAgZm9yICg7ICpwOyArK3AgKSB7CiAgICAgICAgY2hhciAqcHAgPSBwLTE7CiAgICAgICAgZm9yICg7IHBwID49IFM7IC0tcHApIHsKICAgICAgICAgICAgaWYgKCAqcHAgPT0gKnAgKSAvLyBpcyBub3QgZmlyc3QKCSAgICB7CiAgICAgICAgICAgICAgICBtZW1tb3ZlKHBwKzEscHAscC1wcCk7CgkJYnJlYWs7IC8vIDwtLS0tLS0tLS0tLS0tLS0tCgkgICAgfQogICAgICAgIH0KICAgIH0gICAgCiAgICByZXR1cm4gUzsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgaTsKICAgIGNoYXIgdGVzdFs1XVszMF0gPSB7CiAgICAgICJ2dmFiY2JiY2MiLAogICAgICAiYXNkZnJyYWZkc3IiLAogICAgICAiYWJjZGVmZ2lqa2wiLAogICAgICAiMDEwMTAxMDEwMTAxIiwKICAgICAgInRvdG9ib2JvbG9sIgogICAgfTsKICAgIGZvciAoIGkgPSAwOyBpIDwgNTsgKytpICkgeyAKICAgICAgcHJpbnRmKCIlc1xuIixncm91cCh0ZXN0W2ldKSk7CiAgICB9Cn0=