Thang máy tự hành

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: 800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Tade vừa nhận việc tại Khách sạn Hilbert, đảm nhận việc vận chuyển hành lý giữa vô hạn các căn phòng và vô hạn các tầng của khách sạn. Một ngày nọ, khi đang đi giao hành lý, Tade bước vào thang máy để di chuyển giữa các tầng. Không may, ngay khi cửa đóng lại, hệ thống điều khiển gặp sự cố. Thay vì nhận lệnh từ người dùng, chiếc thang máy bắt đầu tự di chuyển theo một quy luật kỳ lạ:

Ban đầu, thang máy đứng ở tầng \(0\). Ở bước thứ \(i\) \((i \ge 1)\), thang máy sẽ cố gắng đi xuống \(i\) tầng, nếu tầng đó âm hoặc thang máy đã từng ghé qua tầng đó trước đây thì thang máy sẽ đổi ý và đi lên \(i\) tầng (dữ liệu đảm bảo thang máy sẽ không bao giờ đi lên tầng đã đi qua).

Lo lắng không biết mình sẽ bị đưa tới đâu, Tade muốn biết sau đúng \(n\) bước di chuyển, thang máy sẽ dừng ở tầng nào.

Input

  • Một số nguyên không âm \(n\) \((1 \le n \le 3 \times 10^5)\).
  • Dữ liệu đảm bảo thang máy không đi quá tầng thứ \(2 \times 10^6\).

Output

  • In ra số tầng mà thang máy đứng tại sau \(n\) bước.

Example

Test 1

Input
6
Output
13
Note

Quá trình di chuyển:

  • Bước 0: tầng \(0\)
  • Bước 1: tầng \(1\) \((+1)\)
  • Bước 2: tầng \(3\) \((+2)\)
  • Bước 3: tầng \(6\) \((+3)\)
  • Bước 4: tầng \(2\) \((-4\) vì tầng 2 hợp lệ và chưa được đi qua\()\)
  • Bước 5: tầng \(7\) \((+5)\)
  • Bước 6: tầng \(13\) \((+6)\)

Vì vậy sau 6 bước, Tade đang ở tầng \(13\).

Bình luận

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

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