reservoir-pingali1.c 226 Bytes
for (int c0 = 1; c0 <= M; c0 += 1)
  for (int c1 = 1; c1 < 2 * N; c1 += 1) {
    for (int c2 = max(1, -N + c1); c2 < (c1 + 1) / 2; c2 += 1)
      S1(c0, c1 - c2, c2);
    if ((c1 + 1) % 2 == 0)
      S2(c0, (c1 + 1) / 2);
  }