MINP - Min Perimeter
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: MrThaodaica

Mr. Thảo có một mảnh đất rất rộng và định rào lại một phần khu đất đó để làm sân chơi cho lũ trẻ trong nhà. Khu vực anh ấy định rào sẽ là một khu đất hình chữ nhật có diện tích s là một số nguyên dương. Vì để tiết kiệm chi phí nên anh ấy muốn rào khu đất lại sao cho chu vi là nhỏ nhất. Và vì vấn đề tâm linh nên chu vi phải là một số nguyên và chiều rộng của nó không thể bằng 1. Vì không biết cách nào để có thể tìm được cách rào nên Mr Thảo muốn nhờ bạn tìm cách giải quyết vấn đề này. Hãy tìm chu vi nhỏ nhất cho khoảng đất mà Mr. Thảo muốn rào, nếu không thể rào được mảnh đất như vậy hãy trả về -1.

Ví dụ:

  • Với s=30, thì kết quả là minPerimeter(30) = 22.
    Vì với diện tích là 30, thì mảnh đất có các cạnh là 6 và 5 cho ra chu vi nhỏ nhất. Các cách chọn khác như cạnh là 3 và 10 cũng có diện tích là 30 nhưng chu vi là 26 hoặc các cạnh là 2 và 15 cũng có diện tích là 30 nhưng chu vi là 34.

           

Đầu vào/Đầu ra

  • [Đầu vào] integer s
    Diện tích của mảnh đất
    1 ≤ n ≤ int.max.

  • [Đầu ra] integer n
    Chu vi nhỏ nhất của mảnh đất có diện tích s

Ví dụ

  • input
    30
    output
    22
Back to Top