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