Given an unsorted array of non-negative integers, find a continous subarray which adds to a given number.
import java.util.Scanner;
class Library {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int i = 0 ; i < T ; i ++)
{
int N = sc.nextInt();
int S = sc.nextInt();
int [] numbers = new int[N];
for(int j = 0 ; j < N ; j ++)
{
numbers[j] = sc.nextInt();
}
int start = 0 ;
int end =0;
int sum =numbers[0] ;
boolean found = false;
for(int j = 1 ; j < N ; )
{
if(sum < S)
{
sum +=numbers[j];
end=j;
if(sum==S)
{
System.out.println( (start+1)+ " " + (end+1));
found = true;
break;
}
j++;
}
else if(sum > S)
{
sum-= numbers[start];
start++;
}
else
{
System.out.println( (start+1)+ " " + (end+1));
found = true;
break;
}
}
if(!found)
System.out.println(-1);
}
}
}