Добрый день не могу понять, где ошибка в моем решении, Вот задачка
1005. Куча камней
Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
У вас есть несколько камней известного веса w1, …, wn. Напишите программу, которая распределит камни в две кучи так, что разность весов этих двух куч будет минимальной.
Исходные данные
Ввод содержит количество камней n (1 ≤ n ≤ 20) и веса камней w1, …, wn (1 ≤ wi ≤ 100 000) — целые, разделённые пробельными символами.
Результат
Ваша программа должна вывести одно число — минимальную разность весов двух куч.
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int number = Integer.parseInt(reader.readLine());
ArrayList<Integer> arr = new ArrayList<>();
String text = reader.readLine();
for (int i = 0;i<number;i++) {
arr.add(Integer.parseInt(text.split(" ")[i]));
}
arr.sort(Collections.reverseOrder());
int b = 0;
for (Integer a:arr){
if (b >= a){
b -= a;
}else{
b += a;
}
}
if (b>=0){
System.out.println(b);
}else{
System.out.println(-b);
}
}
}