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

Cho \(q\) truy vấn, mỗi truy vấn gồm \(3\) số nguyên dương \(a, l, r\) , yêu cầu tính số lượng số \(x\) sao cho:

  • \(l \le x \le r\)
  • \(x\) or \(a = x\)

Bạn có thể tham khảo phép or tại đây

Input

  • Dòng đầu tiên là số \(q\) \((1 \le q \le 10^5)\).
  • \(q\) dòng tiếp theo, mỗi dòng là \(3\) số \(a, l, r\) \((1 \le a, l, r \le 10^9)\).

Output

  • Gồm \(q\) dòng, mỗi dòng là đáp án cho \(1\) truy vấn.

Scoring

Subtask \(1\) (\(20\%\) số điểm): Có \(1 \le q \le 2000\), \(1 \le a, l, r \le 2000\).
Subtask \(2\) (\(80\%\) số điểm): Không có ràng buộc gì thêm

Example

Test 1

Input
1
1 2 5
Output
2

Bình luận


  • 0
    quan26052013    10:24 a.m. 17 Tháng 8, 2024

    \(\text{Cay vãi c*t, TLE 80 đấm:}\)

    Python
    def z(a,l,r):
        q=0
        for x in range(l,r+1):
            if x|a==x:q+=1
        return q
    queries=[list(map(int,input().split()))for _ in range(int(input()))];aaa=[]
    for a,l,r in queries:aaa.append(f'{z(a, l, r)}\n')
    print(*aaa)
    

    • 3 bình luận nữa