/* package whatever; // don't place package name! */
import java.util.*;
import java.util.stream.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static String formatAsRange
(List
<Integer
> list
) { return String.
format("(%d-%d)", list.
get(0), list.
get(list.
size()-1)); }
public static String consecutiveElements
(int[] array,
int minGroupLength
) { StringBuilder sb = new StringBuilder();
List<Integer> group = new ArrayList<>();
for(int i = 0; i < array.length; i++) {
if (i == 0 || array[i] == array[i-1] + 1) {
group.add(array[i]);
} else {
if (group.size() >= minGroupLength) {
sb.append(formatAsRange(group)).append(',');
} else {
var csv
= group.
stream().
map(String::valueOf
).
collect(Collectors.
joining(",")); sb.append(csv).append(',');
}
group.clear();
sb.append(array[i]).append(',');
}
}
return sb.toString();
}
{
// your code goes here
int[] arr = {-4, -2, -1, 0, 1, 3, 4, 5, 6, 9, 10, 12, 13, 14, 18};
System.
out.
println(consecutiveElements
(arr,
3)); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQpwdWJsaWMgc3RhdGljIFN0cmluZyBmb3JtYXRBc1JhbmdlKExpc3Q8SW50ZWdlcj4gbGlzdCkgewoJcmV0dXJuIFN0cmluZy5mb3JtYXQoIiglZC0lZCkiLCBsaXN0LmdldCgwKSwgbGlzdC5nZXQobGlzdC5zaXplKCktMSkpOwp9CgpwdWJsaWMgc3RhdGljIFN0cmluZyBjb25zZWN1dGl2ZUVsZW1lbnRzKGludFtdIGFycmF5LCBpbnQgbWluR3JvdXBMZW5ndGgpIHsKICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwogICAgTGlzdDxJbnRlZ2VyPiBncm91cCA9IG5ldyBBcnJheUxpc3Q8PigpOwogICAgZm9yKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGkgPT0gMCB8fCBhcnJheVtpXSA9PSBhcnJheVtpLTFdICsgMSkgewogICAgICAgICAgICBncm91cC5hZGQoYXJyYXlbaV0pOwogICAgICAgIH0gZWxzZSAgewogICAgICAgICAgICBpZiAoZ3JvdXAuc2l6ZSgpID49IG1pbkdyb3VwTGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBzYi5hcHBlbmQoZm9ybWF0QXNSYW5nZShncm91cCkpLmFwcGVuZCgnLCcpOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgCXZhciBjc3YgPSBncm91cC5zdHJlYW0oKS5tYXAoU3RyaW5nOjp2YWx1ZU9mKS5jb2xsZWN0KENvbGxlY3RvcnMuam9pbmluZygiLCIpKTsKICAgICAgICAgICAgICAgIHNiLmFwcGVuZChjc3YpLmFwcGVuZCgnLCcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGdyb3VwLmNsZWFyKCk7CiAgICAgICAgICAgIHNiLmFwcGVuZChhcnJheVtpXSkuYXBwZW5kKCcsJyk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7Cn0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJaW50W10gYXJyID0gey00LCAtMiwgLTEsIDAsIDEsIDMsIDQsIDUsIDYsIDksIDEwLCAxMiwgMTMsIDE0LCAxOH07CgkJU3lzdGVtLm91dC5wcmludGxuKGNvbnNlY3V0aXZlRWxlbWVudHMoYXJyLCAzKSk7Cgl9Cn0=
-4,-2,(-1-1),3,(4-6),9,10,12,13,14,18,