Попробуйте решить эту проблему на java
Есть N человек, пронумерованных от 1 до N, стоящих в очереди, чтобы снять деньги из банкомата. Очередь формируется в порядке возрастания их количества. Человек с номером i хочет снять сумму Ai. Максимальная сумма, которую человек может снять за один раз, составляет X. Если им нужно больше денег, чем X, им нужно встать в конце очереди и ждать своей очереди в очереди. Человек покидает очередь, как только он снял необходимую сумму.
Вам нужно найти порядок, в котором все люди покидают очередь.
Ввод
В первой строке входных данных указывается количество тестовых случаев, за которыми следуют T тестовых случаев.
Первая строка каждого теста содержит два целых числа, разделенных пробелами: количество людей, стоящих в очереди, N и максимальную сумму X, которую можно снять за один ход.
Следующая строка содержит N целых чисел, разделенных пробелами Ai.
Выход
Для каждого тестового случая выведите одну строку, содержащую случай #x: y, где x-номер тестового случая (начиная с 1), а y-разделенный пробелом список целых чисел, обозначающих порядок, в котором люди покидают очередь.
Пределы
Ограничение по времени: 20 секунд на тестовый набор.
Ограничение памяти: 1 ГБ.
1 ≤ T ≤ 100.
Тестовый Набор 1
1 ≤ N ≤ 100.
1 ≤ Ai ≤ 100.
1 ≤ X ≤ 100.
Тестовый Набор 2
1 ≤ N ≤ 105 для не более чем 10 тестовых случаев. Для остальных случаев 1 ≤ N ≤ 100
1 ≤ Ai ≤ 109.
1 ≤ X ≤ 109.
Образец
Ввод
Выход
2
3 3
2 7 4
5 6
9 10 4 7 2
Случай №1: 1 3 2
Случай №2: 3 5 1 2 4
Что я уже пробовал:
Я пытаюсь получить его решение, но помогите мне.