#include #include #define BAD_ARGS 1 int main(int argc, char *argv[]) { static char buf[30000000]; int error = BAD_ARGS; if (argc > 1) { char *p = buf, *q = buf+1; // elves char *r = buf+2; // next recipe score char score; error = 0; *p = '3'; *q = '7'; do { score = *p + *q - '0'; if (score <= '9') *r++ = score; else { *r++ = '1'; *r++ = score - 10; } p += *p - '0' + 1; q += *q - '0' + 1; while (p >= r) p -= (r - buf); while (q >= r) q -= (r - buf); } while (r - buf < sizeof buf - 2); r = strstr(buf, argv[1]); if (r) printf("%d\n", r - buf); else puts("∞"); } return error; }