#include #include "testlib.h" void solve() { const long long m = 1'000'000'000'000'000'000; long long x = inf.readLong(-m, m); inf.readSpace(); long long n = inf.readLong(1, m); inf.readEoln(); long long y = abs(x); long long l = 0; long long r = 1LL << 31; while (r - l > 1) { long long mid = (l + r) >> 1; if (mid * (mid + 1) / 2 > y) { r = mid; } else { l = mid; } } if (l > n) { if (x > 0) { x -= n * (n + 1) / 2; } else { x += n * (n + 1) / 2; } std::cout << x << std::endl; return; } y -= l * (l + 1) / 2; bool is_zero = y == 0; y += (n - l) / 2; if ((n - l) % 2 == 1) { y -= n; } if (is_zero or x <= 0) { std::cout << -y << std::endl; } else { std::cout << y << std::endl; } } int main(int argc, char *argv[]) { std::cin.tie(0)->sync_with_stdio(0); registerValidation(argc, argv); solve(); inf.readEof(); }