31 lines · c
1S1(0, 0);2for (int c0 = 1; c0 <= N; c0 += 1) {3 S2(c0, 0);4 for (int c1 = 1; c1 < c0; c1 += 1)5 S6(c0, c1);6 S3(c0, c0);7}8S7(N + 1, 0);9for (int c1 = 1; c1 <= N; c1 += 1) {10 S6(N + 1, c1);11 S8(N + 1, c1);12}13for (int c0 = N + 2; c0 < 2 * M - N - 1; c0 += 1) {14 S7(c0, -N + (N + c0 + 1) / 2 - 1);15 if ((N + c0) % 2 == 0) {16 S5(c0, (-N + c0) / 2);17 S8(c0, (-N + c0) / 2);18 }19 for (int c1 = -N + (N + c0) / 2 + 1; c1 < (N + c0 + 1) / 2; c1 += 1) {20 S6(c0, c1);21 S8(c0, c1);22 }23 if ((N + c0) % 2 == 0) {24 S4(c0, (N + c0) / 2);25 S8(c0, (N + c0) / 2);26 }27}28for (int c0 = 2 * M - N - 1; c0 < 2 * M - 1; c0 += 1)29 for (int c1 = -M + c0 + 1; c1 < M; c1 += 1)30 S6(c0, c1);31