[λ°±μ€] 2097λ² - μ‘°μ½λ (C++)
2097λ²: μ‘°μ½λ
λΉμ μ Nκ°μ μ‘°μ½λμ κ°μ§κ³ μλ€. μ΄ μ‘°μ½λμ μ’ννλ©΄μ 격μμ μμ μ무λ κ²λ λ¨μ΄λ¨λ Έλ€. 격μμ μ΄λ, xμ’νμ yμ’ν λͺ¨λκ° μ μμΈ μ§μ μ λ§νλ€. μ΄λ₯Όν λ©΄ (1, 1)μ΄λ (0, -9)λ 격μμ
www.acmicpc.net
λ¬Έμ
λΉμ μ Nκ°μ μ‘°μ½λμ κ°μ§κ³ μλ€. μ΄ μ‘°μ½λμ μ’ννλ©΄μ 격μμ μμ μ무λ κ²λ λ¨μ΄λ¨λ Έλ€. 격μμ μ΄λ, xμ’νμ yμ’ν λͺ¨λκ° μ μμΈ μ§μ μ λ§νλ€. μ΄λ₯Όν λ©΄ (1, 1)μ΄λ (0, -9)λ 격μμ μ΄λ©°, (-2, 3.5)μ΄λ (π, 7.14)λ 격μμ μ΄ μλλ€.
λͺ¨λ μ‘°μ½λμ ν¬ν¨νλ κ°μ₯ μμ μ§μ¬κ°νμ μκ°ν μ μλ€. μλ₯Ό λ€μ΄ μΈ κ°μ μ‘°μ½λμ (2,4), (4, 8), (5,5)μ λ¨μ΄λ¨λ Έλ€λ©΄, μ΄ μΈ μ‘°μ½λμ λͺ¨λ ν¬ν¨νλ κ°μ₯ μμ μ§μ¬κ°νμ κ°λ‘ 3, μΈλ‘ 4μΈ μ§μ¬κ°νμ΄λ€. μ΄ κ²½μ° μ§μ¬κ°νμ λλ λ 14κ° λλ€. μ§μ¬κ°νμ κ°λ‘μ μΈλ‘ κΈΈμ΄λ λ°λμ 1 μ΄μμ΄μ΄μΌ νλ€.
μ‘°μ½λμ κ°μ Nμ΄ μ£Όμ΄μ‘μ λ, μ‘°μ½λμ μ’ννλ©΄μ 격μμ μ μ μ ν λ¨μ΄λ¨λ €μ λͺ¨λ μ‘°μ½λμ ν¬ν¨νλ μ§μ¬κ°νμ λλ λ₯Ό μ΅μλ‘ νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ μ‘°μ½λμ κ°μ N(1 ≤ n ≤ 500,000,000)μ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ μ΅μ λλ λ₯Ό μΆλ ₯νλ€.
νμ΄κ³Όμ
μμ λ₯Ό ν΄μν΄λ³΄μλ©΄ μμ κ°λ€.
λμ μ΅λν λ°°μΉλ₯Ό μν΄μ λλ λ₯Ό κ°μ₯ μκ² λ§λ€λ©΄ λλ λ¬Έμ μμλλ°
μ§μ¬κ°νμ λλ λ₯Ό ꡬνλ 곡μμ΄ ( a * 2 ) + ( b * 2 ) μ΄λ€λ³΄λ a + bμ κ°μ κ°μ₯ μκ² λ§λ€λ©΄ λλ λ¬Έμ μλ€.
a + bλ₯Ό κ°μ₯ μκ² λ§λ€λ €λ©΄ μμ μ κ°μ΄ 1 + 2 μ΄κ±°λ 3 + 3μ΄κ±°λ μΈ νμμ΄λ€λ³΄λ κ·μΉμ±μ λΉκ΅ν΄λ³΄λ©΄ a μ bμ κ°μ μ°¨μ΄κ° κ°μ₯ μμ μλ‘ λλ μ μ΅μκΈΈμ΄κ° λλ€λ κ²μ μ μ μκΈ°λλ¬Έμ a ± 1 >= b λΌλ νμμ μμ΄ μ±λ¦½ν΄μΌνλ€λ κ²μ νμΈν΄λ³Ό μ μμλ€.
κ·Έλμ nμ΄λΌλ κ°μ μ κ³±μλ₯Ό ꡬνκ² λλ©΄ a ± 1 >= b λΌλ μμ κ°μ₯ μ±λ¦½μ΄ λλ κ°μ΄ λμ€κ² λμ΄ νμ΄λ₯Ό μ§ννκ² λμμλ€.
λ¬Έμ μμλ "μ§μ¬κ°νμ κ°λ‘μ μΈλ‘ κΈΈμ΄λ λ°λμ 1 μ΄μμ΄μ΄μΌ νλ€." λΌλ 쑰건μμ΄ μλ€λ³΄λ
n μ΄ 1μ΄λ 2μΈ κ²½μ°μλ κ°λ‘ μΈλ‘μ κΈΈμ΄λ₯Ό 1λ‘ κ³μ°μ ν΄μ€μΌνλ€. ( answer = 4 )
code
#include <iostream>
#include <math.h>
int main(void)
{
int n, root;
std::cin >> n;
if (n == 1 || n == 2)
std::cout << 4;
else {
root = std::round(std::sqrt(n));
if (root * root >= n)
std::cout << (root - 1) * 4;
else
std::cout << ((root - 1) * 2) + ((root) * 2);
}
return (0);
}
νκΈ°
머리λ‘λ μ΄ν΄κ°λμ§λ§ μ΄λ»κ² μ νμμ μΈμμΌν μ§ μκ·Ό κ³ λ―Όμ λ§μ΄νλ λ¬Έμ μλ κ±° κ°λ€.
μνμ μΈ κ°λ μ μ‘°κΈ λ 곡λΆλ₯Ό λ§μ΄ν΄μΌν κ±° κ°λ€.