trang chủ / đề bài / dhbb16_bit

Phép toán thao tác bit

Đề bài

Mô tả

Khi còn là một học sinh chuyên Tin của trường CTN, được học về các phép toán thao tác bit, Hiếu đã sáng tạo ra nhiều bài toán để giúp các bạn trong lớp cùng luyện tập. Dưới đây là một trong số các bài toán có liên quan đến các phép toán AND, OR, XOR.

Cho hai số nguyên không âm L,R và dãy số nguyên không âm a1,a2,…,an. Hãy đếm số lượng bộ 4 chỉ số (i1,i2,i3,i4) thỏa mãn hai điều kiện sau:

  1. 1≤i1<i2<i3<i4≤n;
  2. L≤(((ai1 AND ai2) OR ai3) XOR ai4)≤R.

Trong đó AND, OR, XOR là các phép toán thao tác bit (toán tử &, |, ^ trong C++), thực hiện đúng theo thứ tự các dấu ngoặc.

Bạn hãy cùng Hiếu lập trình giải quyết bài toán trên.

Dữ liệu vào

  • Dòng thứ nhất chứa ba số nguyên n,L,R (0≤L≤R≤1000);
  • Dòng thứ hai chứa n số nguyên không âm a1,a2,…,an (a1,a2,…,an≤1000).

Hai số liên tiếp trên cùng dòng được ghi cách nhau bởi dấu cách.

Dữ liệu ra

In ra một số nguyên là số bộ 4 chỉ số (i1,i2,i3,i4) thỏa mãn điều kiện đề bài.

Ràng buộc

  • 1≤n≤4000.
  • 0≤L≤R≤1000.
  • 0≤ai≤1000.

Subtasks

  • Có 20% số test ứng với 20% số điểm có n≤40;
  • Có 20% số test khác ứng với 20% số điểm có n≤400 và L=R;
  • Có 20% số test khác ứng với 20% số điểm có n≤400 và L<R;
  • Có 20% số test khác ứng với 20% số điểm có n≤4000 và L=R;
  • Có 20% số test còn lại ứng với 20% số điểm có n≤4000 và L<R.

Ví dụ

Input Output Giải thích
5 0 1
2 3 4 1 6
1 Chỉ có bộ (1,2,3,5): ((2 AND 3) OR 4) XOR 6=(2 OR 4) XOR 6=6 XOR 6=0.
6 5 5
1 5 3 7 2 6
9 Ví dụ bổ sung, L=R=5. Chẳng hạn bộ (1,2,3,6): ((1 AND 5) OR 3) XOR 6=3 XOR 6=5.
3 0 1000
1000 999 1000
0 Ví dụ bổ sung: dãy có ít hơn 4 phần tử nên không có bộ chỉ số nào.

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