#include #include #include void replace(char *str, char c, char *rep) { int repLen = strlen(rep); char *p = str - repLen; while (p = strchr(p + repLen, c)) { memmove(p + repLen, p + 1, strlen(p + 1) + 1); memcpy(p, rep, repLen); } } int main(int argc, char **argv) { FILE *fi = stdin; FILE *fo = stdout; char buf[20 * 1024]; int nRead = fread(buf, 1, sizeof(buf) - 1, fi); assert(nRead > 0); buf[nRead] = 0; char str[1024]; char *p1, *p2; p2 = buf - 1; int id = 0; while (true) { if (!(p1 = strchr(p2 + 1, '{'))) { break; } if (!(p2 = strchr(p1, '}'))) { break; } *p2 = 0; int newId; int nRead = sscanf(p1-3, "%d", &newId); assert(nRead == 1); for (int i = id; i