[C10_HCM_25] Kệ tài liệu

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Ông Pascal xây dựng một kệ tài liệu theo dạng hình tam giác có chiều cao ~h~. Có tầng được đánh số từ ~1, 2, \ldots, h~. Tầng ~i~ có ngăn đánh số từ ~1, 2, \ldots, i~. Minh hoạ như hình bên dưới:

  • Tầng ~1~: ~1~
  • Tầng ~2~: ~1~ ~2~
  • Tầng ~3~: ~1~ ~2~ ~3~
  • ...

Có ~N~ tài liệu được đánh số từ ~1, 2, \ldots, N~ được cất vào các ngăn trên kệ theo thứ tự từ trái sang phải và từ trên xuống dưới.

Do kệ quá cao nên ông thiết kế một hệ thống robot tự động có thể di chuyển đến ngăn cất tài liệu thứ ~P~ mà ông cần.

Yêu cầu

Hãy viết chương trình xác định tầng và ngăn cất tài liệu thứ ~P~.

Dữ liệu đầu vào

Gồm một dòng chứa một số nguyên ~P~ ~(1 \le P \le 10^{18})~.

Dữ liệu đầu ra

Gồm hai số nguyên lần lượt là số tầng và số ngăn cất tài liệu, hai số cách nhau một khoảng trắng.

Ràng buộc dữ liệu

  • Subtask 1: 50% số điểm: ~1 \le P \le 10^3~.
  • Subtask 2: 30% số điểm: ~1 \le P \le 10^{12}~.
  • Subtask 3: 20% số điểm: ~1 \le P \le 10^{18}~.

Ví dụ

Ví dụ 1
INPUT
13
OUTPUT
5 3

Giải thích: Các tài liệu được cất trên kệ lần lượt là:

  • Tầng ~1~: ~1~
  • Tầng ~2~: ~2~ ~3~
  • Tầng ~3~: ~4~ ~5~ ~6~
  • Tầng ~4~: ~7~ ~8~ ~9~ ~10~
  • Tầng ~5~: ~11~ ~12~ ~\underline{13}~ ~14~ ~15~
  • ...

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.