LQDOJ Contest #8 - Bài 3 - Hoán Vị

Xem PDF

Điểm: 1900 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

shiba - bạn thân của _minhduc trong khi làm bài tập tết để vào ngày mùng tết cậu ấy có thể đi chơi thoải mái thì gặp một bài từ rất khó từ thầy giáo: Cho một số nguyên dương \(N\). Một dãy được gọi là dãy đẹp khi dãy đó là hoán vị của các số từ \(1\) đến \(N\) và dãy đó thỏa mãn rằng có ít nhất một cặp số liền kề trong dãy đó có dạng \((x,x+1)\). Ví dụ với \(N = 4\) thì các dãy \((1,2,4,3)\)\((3,4,1,2)\) là các dãy đẹp, còn các dãy \((3,1,4,2)\)\((4,3,2,1)\) thì không phải. shiba cần đếm số dãy đẹp khác nhau có thể tạo ra khi biết trước số nguyên dương \(N\).

Bài này khó đến nổi shiba không làm được. Cậu ấy chợt nhớ nhớ ra rằng _minhduc rất thông thạo về dãy hoán vị nên shiba đã hỏi bài bạn thân của mình. Nhưng _minhduc đang bận chơi game "bình nguyên vô tận" với bạn gái nên không thể chỉ bài cho shiba được vì sợ nếu bỏ trận đấu giữa chừng thì bạn gái của mình sẽ giận. Vì vậy _minhduc nhờ các bạn tài giỏi trong LQDOJ giải quyết bài toán này cho shiba ~rồi _minhduc sẽ lì xì cho các bạn :Đ~

Yêu cầu: Bạn hãy viết chương trình giải quyết bài toán trên sau khi chia lấy dư cho \(M\) với \(M\) là một số nguyên dương được nhập từ bàn phím.

Input

  • Chứa hai số nguyên dương lần lượt là \(N\)\(M\) \((1 \le N \le 10^{18}, 2 \le M \le 10^7)\).

Output

  • In ra kết quả bài toán sau khi chia lấy dư cho \(M\).

Scoring

  • Subtask \(1\) (\(10\%\) số điểm): Có \(N \le 10\).

  • Subtask \(2\) (\(20\%\) số điểm): Có \(N \le 15\).

  • Subtask \(3\) (\(20\%\) số điểm): Có \(N \le 20\).

  • Subtask \(4\) (\(30\%\) số điểm): Có \(N \le 10^6\).

  • Subtask \(5\) (\(20\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
4 100
Output
13
Note
  • \(13\) dãy đẹp:
    • \(1: (1,2,3,4)\)
    • \(2: (1,2,4,3)\)
    • \(3: (1,3,4,2)\)
    • \(4: (1,4,2,3)\)
    • \(5: (2,1,3,4)\)
    • \(6: (2,3,1,4)\)
    • \(7: (2,3,4,1)\)
    • \(8: (3,1,2,4)\)
    • \(9: (3,4,1,2)\)
    • \(10: (3,4,2,1)\)
    • \(11: (4,1,2,3)\)
    • \(12: (4,2,3,1)\)
    • \(13: (4,3,1,2)\)

Bình luận


  • 0
    anhquan24    4:29 p.m. 9 Tháng 9, 2024 chỉnh sửa 7

    .


    • 0
      lamdeptrai    5:29 p.m. 9 Tháng 9, 2024 đã chỉnh sửa
      C++
      #include <bits/stdc++.h>
      using namespace std;
      #define ll long long
      ll n, m, d;
      int main(){
          cout << "hieugucci1223 và PY1DNguyenChanhNguyen và kietlqt và 
      tk21nhatnguyenquocuy chép code mới admin ban" << endl;
          return 0;
      }
      

      • 0
        lamdeptrai    5:27 p.m. 9 Tháng 9, 2024

        dễ mà

        2 bình luận nữa