Lưới ô vuông (THTA KV Miền Bắc & Trung 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 600 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một lưới ô vuông được tạo thành từ các hình vuông bằng nhau. Các hình vuông được sắp xếp thành từng tầng tính từ trung tâm ra ngoài.

  • Lưới bậc \(1\) gồm đúng \(1\) hình vuông ở trung tâm;
  • Lưới bậc \(2\) gồm lưới bậc \(1\) và thêm các hình vuông ở tầng thứ \(2\) bao quanh;
  • Tương tự, lưới bậc \(K\) gồm các hình vuông từ tầng \(1\) đến tầng \(K\).

Ví dụ dưới đây là lưới ô vuông bậc \(2\):

Ví dụ dưới đây là lưới ô vuông bậc \(5\):

Để vẽ một lưới ô vuông hoàn chỉnh, cần vẽ đủ tất cả các cạnh của các hình vuông trong lưới.

Một số nhận xét:

  • Nếu sử dụng ít hơn \(4\) đoạn thẳng thì không vẽ được hình vuông nào;
  • Lưới bậc \(1\) cần đúng \(4\) đoạn thẳng;
  • Lưới bậc \(2\) cần đúng \(16\) đoạn thẳng;
  • Nói chung, lưới bậc \(K\) cần đúng \(4 \cdot K^2\) đoạn thẳng.

Yêu cầu: Cho số tự nhiên \(N\) là số đoạn thẳng được sử dụng để vẽ lưới ô vuông. Hãy tìm bậc lớn nhất của lưới ô vuông hoàn chỉnh có thể vẽ được. Nếu không vẽ được hình vuông nào, hãy in ra \(0\).

Input

  • Gồm một dòng chứa số tự nhiên \(N\) (\(0 \le N \le 10^{16}\)).

Output

  • In ra một số tự nhiên duy nhất là bậc lớn nhất của lưới ô vuông hoàn chỉnh có thể vẽ được.

Example

Test 1

Input
3
Output
0
Note

Cần ít nhất \(4\) đoạn thẳng để vẽ được lưới bậc \(1\). Vì chỉ có \(3\) đoạn thẳng nên không vẽ được hình vuông nào.

Test 2

Input
16
Output
2
Note

Lưới bậc \(2\) cần đúng \(4 \cdot 2^2 = 16\) đoạn thẳng, nên có thể vẽ được lưới bậc \(2\) hoàn chỉnh.

Test 3

Input
20
Output
2
Note

Với \(20\) đoạn thẳng, có thể vẽ được lưới bậc \(2\) hoàn chỉnh. Để vẽ lưới bậc \(3\) cần \(4 \cdot 3^2 = 36\) đoạn thẳng, nên chưa đủ.

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(N \le 20\).
  • Subtask \(2\) (\(30\%\) số điểm): \(N \le 1000\).
  • Subtask \(3\) (\(30\%\) số điểm): \(N \le 10^{12}\).
  • Subtask \(4\) (\(20\%\) số điểm): Không có ràng buộc bổ sung (\(N \le 10^{16}\)).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: