Official

D - 立方体を壊せ! Editorial by kaage


  • \(0\leq K\leq N\) の場合 \(K^3\)
  • \(N\leq K\leq 2N\) の場合 \(K^3-3(K-N)^3\)
  • \(2N\leq K\leq 3N\) の場合 \(6N^3-(3N-K)^3\)
  • \(3N\leq K\) の場合 \(6N^3\)

が答えとなります。 次のようなコードを書けば良いです。

#include <iostream>
using lint = long long int;
int main() {
	lint N, K;
	std::cin >> N >> K;
	if (K <= N)
		std::cout << K * K * K << std::endl;
	else if (K <= 2 * N)
		std::cout << K * K * K - 3 * (K - N) * (K - N) * (K - N) << std::endl;
	else if (K <= 3 * N)
		std::cout << 6 * N * N * N - (3 * N - K) * (3 * N - K) * (3 * N - K) << std::endl;
	else
		std::cout << 6 * N * N * N << std::endl;
}

posted:
last update: