SORT - Biến đổi số
Point: 100.0
Time limit: 1.0s
Memory limit: 640 M
Input:
stdin
Output:
stdout
Author:
Problem type
B - Thuật toán cơ bản: 02 - Sắp xếp
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text
Cho một mảng \(n\) số, số thứ \(i\) là \(a_i.\) Bạn có một phép biến đổi như sau:
Chọn hai số \(a_i\) và \(a_j\ (i ≠ j),\) nếu \(a_i ≥ a_j\) thì \(a_j\) biến mất và \(a_i = a_i + 1\)
Yêu cầu
Cần biến đổi để thu được nhiều số nhất lớn hơn hoặc bằng một giá trị \(K\) cho trước nào đó.
Dữ liệu
- Dòng đầu chứa số \(T\) – số test \((1 ≤ T ≤ 5)\). Các test cụ thể như sau:
- Dòng đầu tiên chứa \(N\) và \(Q\) là số phần tử trong mảng và số truy vấn \((1 ≤ N,Q ≤ 10^5)\)
- Dòng thứ hai là \(N\) nguyên \(a_1,..., a_n\) là các phần tử của mảng \(A\ (1 ≤ a_i ≤ 10^9)\)
- Dòng thứ \(i\) trong \(Q\) dòng tiếp theo chứa \(K_i\ (1 ≤ K_i ≤ 10^9)\)
Kết quả
Với mỗi test, in ra \(Q\) dòng, dòng thứ \(i\) là số phần tử lớn nhất còn lại mà phần tử nhỏ nhất lớn hơn hoặc bằng \(K_i\)
INPUT
2
5 2
21 9 5 8 10
10
15
5 1
1 2 3 4 5
100
OUTPUT
3
1
0