/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
int arr[] ={1, 2, 3, 4, 5, -1, -4}; int k =9;
HashMap
<Integer,Integer
>map
= new HashMap
<>(); map.put(0,-1);
int cs =0; int[]min1 ={0,arr.length}; int[]max1 ={0,-1};
for(int j =0; j< arr.length; j++){
cs += arr[j];
if(!map.containsKey(cs)){map.put(cs,j);}
int temp = cs-k;
if(map.containsKey(temp)){
int lo = map.get(temp); int top = j;
if(top - lo <= min1[1]-min1[0]){min1[0]= lo+1; min1[1]= top;}
if(top - lo >= max1[1]-max1[0]){max1[0]= lo+1; max1[1]= top;}
}
}
System.
out.
println(" max ==>"+ max1
[1]+" "+max1
[0]); System.
out.
println(" min ==>"+ min1
[1]+" "+min1
[0]); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCWludCBhcnJbXSA9ezEsIDIsIDMsIDQsIDUsIC0xLCAtNH07IGludCBrID05OwogICAgICAgICAgICAgICBIYXNoTWFwPEludGVnZXIsSW50ZWdlcj5tYXAgPSBuZXcgSGFzaE1hcDw+KCk7CiAgICAgICAgICAgICAgIG1hcC5wdXQoMCwtMSk7CiAgICAgICAgICAgICAgIGludCBjcyA9MDsgaW50W11taW4xID17MCxhcnIubGVuZ3RofTsgaW50W11tYXgxID17MCwtMX07CiAgICAgICAgICAgICAgIGZvcihpbnQgaiA9MDsgajwgYXJyLmxlbmd0aDsgaisrKXsKICAgICAgICAgICAgICAgIGNzICs9IGFycltqXTsKICAgICAgICAgICAgICAgIGlmKCFtYXAuY29udGFpbnNLZXkoY3MpKXttYXAucHV0KGNzLGopO30KICAgICAgICAgICAgICAgIGludCB0ZW1wID0gY3MtazsKICAgICAgICAgICAgICAgICAgIGlmKG1hcC5jb250YWluc0tleSh0ZW1wKSl7CiAgICAgICAgICAgICAgICAgICAgICAgIGludCBsbyA9IG1hcC5nZXQodGVtcCk7IGludCB0b3AgPSBqOwogICAgICAgICAgICAgICAgICAgICAgICBpZih0b3AgLSBsbyA8PSBtaW4xWzFdLW1pbjFbMF0pe21pbjFbMF09IGxvKzE7IG1pbjFbMV09IHRvcDt9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRvcCAtIGxvID49IG1heDFbMV0tbWF4MVswXSl7bWF4MVswXT0gbG8rMTsgbWF4MVsxXT0gdG9wO30KICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBtYXggPT0+IisgbWF4MVsxXSsiICAiK21heDFbMF0pOwogICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBtaW4gPT0+IisgbWluMVsxXSsiICAiK21pbjFbMF0pOwoJfQp9