/* 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
{
{
new Ideone().run();
}
void run(){
int[] arr = { 1, 2, 3, 4, 5, 6 };
int req = 14;
// For the algorithm to work correctly, the array must be sorted
for(int i=0; i<arr.length; i++){// Iterate over the elements of the array.
// Check in linear time whether there exists distinct indices
// lo and hi that sum to req-arr[i]
int lo = 0;
int hi = arr.length-1;
boolean found = false;
while(lo<hi){
if(lo==i){
lo++;
continue;
}
if(hi==i){
hi--;
continue;
}
int val = arr[lo] + arr[hi] + arr[i];
if(val == req){
System.
out.
println(arr
[lo
] + " + " + arr
[hi
] + " + " + arr
[i
] + " = " + req
); found = true;
break;
}else if(val < req){
lo++;
}else{
hi--;
}
}
if(found){
break;
}
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCW5ldyBJZGVvbmUoKS5ydW4oKTsKCX0KCgkgdm9pZCBydW4oKXsKICAgIAkJaW50W10gYXJyID0geyAxLCAyLCAzLCA0LCA1LCA2IH07CiAgICAJCWludCByZXEgPSAxNDsKICAgICAgICAgICAgLy8gRm9yIHRoZSBhbGdvcml0aG0gdG8gd29yayBjb3JyZWN0bHksIHRoZSBhcnJheSBtdXN0IGJlIHNvcnRlZAogICAgICAgICAgICBBcnJheXMuc29ydChhcnIpOyAgICAgIAoJCQogICAgCQlmb3IoaW50IGk9MDsgaTxhcnIubGVuZ3RoOyBpKyspey8vIEl0ZXJhdGUgb3ZlciB0aGUgZWxlbWVudHMgb2YgdGhlIGFycmF5LgoKICAgICAgICAgICAgICAgIC8vIENoZWNrIGluIGxpbmVhciB0aW1lIHdoZXRoZXIgdGhlcmUgZXhpc3RzIGRpc3RpbmN0IGluZGljZXMgCiAgICAgICAgICAgICAgICAvLyBsbyBhbmQgaGkgdGhhdCBzdW0gdG8gcmVxLWFycltpXQogICAgCQkJaW50IGxvID0gMDsKICAgIAkJCWludCBoaSA9IGFyci5sZW5ndGgtMTsKICAgIAkJCWJvb2xlYW4gZm91bmQgPSBmYWxzZTsKICAgIAkJCXdoaWxlKGxvPGhpKXsKICAgIAkJCQlpZihsbz09aSl7CiAgICAJCQkJCWxvKys7CiAgICAJCQkJCWNvbnRpbnVlOwogICAgCQkJCX0KICAgIAkJCQlpZihoaT09aSl7CiAgICAJCQkJCWhpLS07CiAgICAJCQkJCWNvbnRpbnVlOwogICAgCQkJCX0KICAgIAkJCQlpbnQgdmFsID0gYXJyW2xvXSArIGFycltoaV0gKyBhcnJbaV07CiAgICAJCQkJaWYodmFsID09IHJlcSl7CiAgICAJCQkJCVN5c3RlbS5vdXQucHJpbnRsbihhcnJbbG9dICsgIiArICIgKyBhcnJbaGldICsgIiArICIgKyBhcnJbaV0gKyAiID0gIiArIHJlcSk7CiAgICAJCQkJCWZvdW5kID0gdHJ1ZTsKICAgIAkJCQkJYnJlYWs7CiAgICAJCQkJfWVsc2UgaWYodmFsIDwgcmVxKXsKICAgIAkJCQkJbG8rKzsKICAgIAkJCQl9ZWxzZXsKICAgIAkJCQkJaGktLTsKICAgIAkJCQl9CiAgICAJCQl9CiAgICAJCQlpZihmb3VuZCl7CiAgICAJCQkJYnJlYWs7CiAgICAJCQl9CiAgICAJCX0KICAgIAl9Cn0=