#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char * doit(char * s)
{
int levl = 0;
for(char * c = s; *c; ++c)
{
if (*c == '(')
{
levl++;
if (levl == 2) *c = '['; else if (levl > 2) *c = '{';
}
else if (*c == ')')
{
if (levl == 2) *c = ']'; else if (levl > 2) *c = '}';
levl--;
if (levl < 0) return NULL;
}
}
return (levl == 0) ? s : NULL;
}
int main()
{
char s[] = "hgacsh(jhjh jhbhj ( uhghgv (bnv) jhih (jhjkh( lkjhjh))jhgjh) hjhj)ghj";
char q[] = "hgacsh(jhjh jhbhj ( uhghgv (bnv) jh ) ih (jhjkh( lkjhjh))jhgjh) hjhj)ghj";
char r[] = "hgacsh(jhjh jhbhj ( uhghgv (bnv) jh ( ih (jhjkh( lkjhjh))jhgjh) hjhj)ghj";
char * res = doit(s);
if (res
) printf("%s\n",res
); else puts("Wrong string!");
res = doit(q);
if (res
) printf("%s\n",res
); else puts("Wrong string!");
res = doit(r);
if (res
) printf("%s\n",res
); else puts("Wrong string!");
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKY2hhciAqIGRvaXQoY2hhciAqIHMpCnsKICAgIGludCBsZXZsID0gMDsKICAgIGZvcihjaGFyICogYyA9IHM7ICpjOyArK2MpCiAgICB7CiAgICAgICAgaWYgKCpjID09ICcoJykKICAgICAgICB7CiAgICAgICAgICAgIGxldmwrKzsKICAgICAgICAgICAgaWYgKGxldmwgPT0gMikgKmMgPSAnWyc7IGVsc2UgaWYgKGxldmwgPiAyKSAqYyA9ICd7JzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoKmMgPT0gJyknKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGxldmwgPT0gMikgKmMgPSAnXSc7IGVsc2UgaWYgKGxldmwgPiAyKSAqYyA9ICd9JzsKICAgICAgICAgICAgbGV2bC0tOwogICAgICAgICAgICBpZiAobGV2bCA8IDApIHJldHVybiBOVUxMOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAobGV2bCA9PSAwKSA/IHMgOiBOVUxMOwp9CgppbnQgbWFpbigpCnsKICAgIGNoYXIgc1tdID0gImhnYWNzaChqaGpoIGpoYmhqICggdWhnaGd2IChibnYpIGpoaWggKGpoamtoKCBsa2poamgpKWpoZ2poKSBoamhqKWdoaiI7CiAgICBjaGFyIHFbXSA9ICJoZ2Fjc2goamhqaCBqaGJoaiAoIHVoZ2hndiAoYm52KSBqaCApIGloIChqaGpraCggbGtqaGpoKSlqaGdqaCkgaGpoailnaGoiOwogICAgY2hhciByW10gPSAiaGdhY3NoKGpoamggamhiaGogKCB1aGdoZ3YgKGJudikgamggKCBpaCAoamhqa2goIGxramhqaCkpamhnamgpIGhqaGopZ2hqIjsKCiAgICBjaGFyICogcmVzID0gZG9pdChzKTsKICAgIGlmIChyZXMpIHByaW50ZigiJXNcbiIscmVzKTsgZWxzZSBwdXRzKCJXcm9uZyBzdHJpbmchIik7CgogICAgcmVzID0gZG9pdChxKTsKICAgIGlmIChyZXMpIHByaW50ZigiJXNcbiIscmVzKTsgZWxzZSBwdXRzKCJXcm9uZyBzdHJpbmchIik7CgogICAgcmVzID0gZG9pdChyKTsKICAgIGlmIChyZXMpIHByaW50ZigiJXNcbiIscmVzKTsgZWxzZSBwdXRzKCJXcm9uZyBzdHJpbmchIik7CgkKCQp9Cg==