/* -*- coding: utf-8 -*- * * 1318.cc: No.1318 ABCD quadruplets - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 160000; const int pns[8] = { 1, 4, 6, 12, 4, 12, 12, 24 }; /* typedef */ /* global variables */ int ss[MAX_N + 1]; /* subroutines */ /* main */ int main() { int n, m; scanf("%d%d", &n, &m); for (int a = 0; a <= m; a++) { int sa = a * a; if (sa > n) break; for (int b = a; b <= m; b++) { int sb = sa + (a + b) * b; if (sb > n) break; for (int c = b; c <= m; c++) { int sc = sb + (a + b + c) * c; if (sc > n) break; for (int d = c; d <= m; d++) { int sd = sc + (a + b + c + d) * d; if (sd > n) break; int bits = 0; if (a < b) bits |= 1; if (b < c) bits |= 2; if (c < d) bits |= 4; ss[sd] += pns[bits]; } } } } for (int i = 0; i <= n; i++) printf("%d\n", ss[i]); return 0; }