import java.util.ArrayList;
public class SubArrayWithMinSum {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = {1, 3, -2, -1,1};
ArrayList<Integer> result = subarrayWithMinSum(a);
System.out.println(result.toString());
}
public static ArrayList<Integer> subarrayWithMinSum(int[] A){
int n = A.length;
int local_min = 0;
int global_min = Integer.MAX_VALUE;
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < n; i++){
int current = A[i];
local_min = Math.min(current, current + local_min);
if(current < current+local_min){
list.clear();
}
if(local_min < global_min){
list.add(current);
global_min = local_min;
}
}
return list;
}
}