From 06de1eef6da62307ce23cf0a4cf6713c18348148 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 15 Mar 2021 20:14:43 +0800 Subject: import(solutions): Add acwing 1237. --- works/solutions/acwing/1237.cpp | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 works/solutions/acwing/1237.cpp (limited to 'works') diff --git a/works/solutions/acwing/1237.cpp b/works/solutions/acwing/1237.cpp new file mode 100644 index 0000000..a3b8810 --- /dev/null +++ b/works/solutions/acwing/1237.cpp @@ -0,0 +1,49 @@ +#include +#include + +using ll = long long; + +int main() { + ll X, Y; + std::cin >> X >> Y; + + ll result = 0; + + if (X == 0 && Y == 0) { + return 0; + } + + if (std::abs(X) > std::abs(Y) || + (std::abs(X) == std::abs(Y) && !(X < 0 && Y < 0))) { + ll c = std::abs(X); + + result += ((c - 1) * 4 + 2) * (c - 1); + + if (X > 0) { + result += (c * 2 - 1) * 2; + result += c * 2; + result += (c - Y); + } else { + result += (c * 2 - 1); + result += (Y - (-c + 1)); + } + + } else { + ll c = std::abs(Y); + + result += ((c - 1) * 4 + 2) * (c - 1); + + if (Y > 0) { + result += (c * 2 - 1) * 2; + result += (X - (-c)); + } else { + result += (c * 2 - 1) * 2; + result += c * 2 * 2; + result += c - X; + } + } + + std::cout << result; + + return 0; +} -- cgit v1.2.3