#include #include #include #include #include #include /* (c) 1964 - This has been tested with clang and gcc. Make sure to compile with `-lm`. - Undefined behavior is not allowed. Other compiler warnings are okay to ignore. - All array entries except the final sentinel are to be set to a nonzero value. - Counting comments as one, there are ten types of thing in this puzzle. */ int main() { int N; float Y; complex Z; float F[23] = {Y = /* The first array entry is used as scratch space, and so is one of the only entries that will be modified more than once. */ N = 41}; F[ /* This entry, around the middle of the array, is being set to its final value. */ N -= 32] = *F; F[3] = *F; /* The value set here will, after the end of the program, be read as the letter E. */ typedef /* The code up to here has run pretty normally, */ float T; T /* but this will soon no longer be true. */ *P = 10 + ((isxdigit(*F) * /* The final program should not end up showing nondeterministic behavior. */ +rand())[&F]); -8, *P = (abs(*P) << abs(*P)) -8, *P = (abs(*P) << abs(*P)) % 69; *P /= fabs((float) log(*P)); *(P + 4) = *P + /* The value set here will, after the end of the program, be read as the letter N. */ *F - ~(int) asinh(*P); ++P; *P /* The value set here is a float that might not look exact, but will still pretty clearly give the letter S in the end. */ = *F * log10((int) trunc( Y)); N--; Z = ~-(--P - F) + N * /* At this time, 5 out of 22 array entries should be set to their final values. */ *F; Z += N-- - (F - --P); *(F + N) = Z++ / ~-N; N++; (P , ++P , ++P , ++P )[N] = F[-~N]; Y = F[N--] = *F * 0x1.a895dp0; (exit , F[--N] = *F + 0x1.b1aep21 / (0xdead + 0xbeef + 0xcafe + 0xf00d)), exit ; F[--N] = *F = 0x.9b3p5; exit - exit + exit - exit + exit, Z -= N++; errno[P++] = *(F + -~N); *P = --Z / ~-N; (P++[N] = ( Y)); N--; Z = ~-(--P - F) + N * I; *(F - ~(int) ( (*(F + 16) = *(F + lround(*F - tan( 58)))) / *F + 13)) = *P * tan(208); *F = *(P += 4); /* At this time, P should point to the last meaningful array entry. */ *(P += 4); /* At this time, P should point to the last meaningful array entry. */ *P = 10 + -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -81 + (*F + sin(*F - cos(*F - tan(*F - fabs(*F))))); /* This line sets two array entries to their final values, */ if(*P == 0x0) *P = fabs((0x.29c2p0 * *F) * Z) - *F; --P; /* for a total of 18 out of 22. */ Z *= .638424 * -8, *P = (abs(*P) << abs(*P)) -8, *P = (abs(*P) << abs(*P)) -0; *P /= -0.795 * *F + sqrt( -0.795 * *F + sqrt( lround(*P)) + 3 ** P - !exit * (long) ( +rand())[&F]); 18[F] = 1[F] = P[~-N] - (N ^ 12); Y = 9. / N; P -= (int) '}' - '{'; *(P + '\x13') = (N = ' ', *F - *P / 30); 0[&N]; if(&Y) do { *P -= 0[&N]; if(&Y) do { *P -= -0; *P /= 0[&Y]; } while (!&N); continue; } while (*(++P)); for (int i = 0; F[i]; ++i) printf("%d\t%f\t%c\n", i, F[i], (int) round(F[i] + 64)); printf("N = %d\tZ = (%f, %f)\tY = %f\tP = %ld\n", N, creal(Z), cimag(Z), Y, P - F); }