int solve(int n) { n = abs(n); int l = -1, r = sqrt(n) + 10; while (l + 1 < r) { int m = (l + r) >> 1; if (m * (m + 1) / 2 >= n) r = m; else l = m; } int x = r * (r + 1) / 2; if ((x % 2) == (n % 2)) return r; if (r % 2) return r + 2; return r + 1; }