C++ bài 18.D3: Di chuyển trên ma trận


Submit solution

Points: 25 (partial)
Time limit: 1.0s
Memory limit: 20M

Author:
Problem type

Đức đang đứng trên một bảng nhân có vô số hàng và cột.

Ô \((i, j)\) chứa số nguyên \(i \times j\). Ban đầu, Đức đứng tại \((1,1)\).

Trong một lần di chuyển, anh ấy có thể di chuyển từ \((i, j)\) đến \((i+1, j)\) hoặc \((i, j+1)\).

Cho một số nguyên \(N\), tìm số lần di chuyển tối thiểu cần thiết để đến một ô chứa số \(N\).

Ràng buộc

\(2 \leq N \leq 10^{12}\)

\(N\) là số nguyên.

Định dạng nhập

Dữ liệu nhập được cung cấp từ đầu vào chuẩn theo định dạng sau:

\(N\)

Định dạng xuất

In ra số lần di chuyển tối thiểu cần thiết để đến một ô chứa số nguyên \(N\).

Ví dụ:

Input
10
Output
5

Ô \((2,5)\) có thể được đạt đến trong năm lần di chuyển. Chúng ta không thể đạt đến một ô chứa \(10\) trong ít hơn năm lần di chuyển.

Input
50
Output
13

Ô \((5,10)\) có thể được đạt đến trong \(13\) lần di chuyển.

Giải thích ví dụ mẫu:

Ví dụ 1:
  • Input: 10
  • Giải thích: Để đến ô (2,5), cần 5 lần di chuyển: xuống 1 lần và sang phải 4 lần.
Ví dụ 2:
  • Input: 50
  • Giải thích: Đến ô (5,10) yêu cầu 13 lần di chuyển: xuống 4 lần và sang phải 9 lần.

Lời giải bài tập này: Tại đây

Group giải đáp thắc mắc: Lập trình 24h

Fanpage CLB: CLB lập trình Full House- Việt Nam

Youtube: CLB Lập Trình Full House


Comments

There are no comments at the moment.