Ba Chú Ngựa

Đề bài

Mô tả

Có ba chú ngựa sống ở xứ ngựa: một chú màu xám, một chú màu trắng và một chú vừa xám vừa trắng. Ba chú ngựa rất thích các tấm thẻ đặc biệt, mỗi tấm thẻ ghi hai số nguyên — số trên đầu thẻ và số ở đáy thẻ. Ký hiệu một tấm thẻ có số a ở trên và b ở dưới là (a,b).

Mỗi chú ngựa có thể tạo ra thẻ mới theo quy tắc riêng:

  • Ngựa xám: cho xem một tấm thẻ (a,b), nó sẽ vẽ ra tấm thẻ (a+1,b+1).
  • Ngựa trắng: cho xem một tấm thẻ (a,b) trong đó cả a và b đều là số chẵn, nó sẽ vẽ ra tấm thẻ (a2,b2).
  • Ngựa xám-trắng: cho xem hai tấm thẻ (a,b) và (b,c), nó sẽ vẽ ra tấm thẻ (a,c).

Polycarpus muốn thu được n tấm thẻ cụ thể (1,a1),(1,a2),…,(1,an). Cậu sẽ đến xứ ngựa và được phép mang theo đúng một tấm thẻ ban đầu (x,y) với 1≤x<y≤m. Hỏi có bao nhiêu cách chọn tấm thẻ (x,y) sao cho từ tấm thẻ đó, sau một số thao tác (có thể tạo thêm các thẻ phụ khác), Polycarpus có thể nhận được toàn bộ n tấm thẻ yêu cầu?

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên n và m.
  • Dòng thứ hai chứa dãy n số nguyên a1,a2,…,an (các số có thể trùng nhau).

Dữ liệu ra

In ra một số nguyên duy nhất — số cách chọn tấm thẻ (x,y) thoả mãn yêu cầu.

Ràng buộc

  • 1≤n≤105
  • 2≤m≤109
  • 2≤ai≤109

Ví dụ

Input Output Giải thích
1 6
2
11 Cần có thẻ (1,2). Mọi cặp (x,y) với 1≤x<y≤6 mà phần lẻ của y−x chia hết 1 đều hợp lệ — tức là toàn bộ (62)=15 cặp trừ 4 cặp không thoả mãn, còn 11 cặp.
1 6
7
14 Cần có thẻ (1,7), tức y−x phải có phần lẻ chia hết 6 ở mức "phần lẻ"... Đếm được 14 cặp (x,y) hợp lệ với m=6.
2 10
13 7
36 Cần đồng thời hai thẻ (1,13) và (1,7). Lấy gcd(13−1,7−1)=6; phần lẻ của 6 là 3. Đếm các cặp (x,y) có y−x chia cho phần lẻ ra kết quả là luỹ thừa của 2.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0