/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.stream.* ;
import java.math.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
for ( Map.Entry entry
: getChances
( 10 ,
20 ,
15 ) .
entrySet ( ) ) System .
out .
println ( entry.
getKey ( ) + ": " + entry.
getValue ( ) ) ; }
@SafeVarargs
private static final int [ ] reverse( final int ... array ) {
int [ ] ret = new int [ array.length ] ;
for ( int i = array.length - 1 ; i > 0 ; i-- ) {
ret
[ Math .
abs ( 0 - i
) ] = array
[ i
] ; }
return ret;
}
private static Map
< Integer , Float
> getChances
( int min,
int max,
int close
) { int differ = max - min;
if ( close > max || close < min) {
close = differ + min;
}
int [ ] numbers = IntStream.rangeClosed ( min, max) .toArray ( ) ;
if ( numbers[ numbers.length - 1 ] == close) {
numbers = reverse( numbers) ;
}
Map
< Integer , Float
> chances
= new LinkedHashMap
<> ( ) ; chances.put ( close, 50f) ;
for ( int i = min; i <= max; i++ ) {
chances.putIfAbsent ( i, chance) ;
}
return chances;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLio7CmltcG9ydCBqYXZhLm1hdGguKjsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJZm9yIChNYXAuRW50cnkgZW50cnkgOiBnZXRDaGFuY2VzKDEwLCAyMCwgMTUpLmVudHJ5U2V0KCkpIFN5c3RlbS5vdXQucHJpbnRsbihlbnRyeS5nZXRLZXkoKSArICI6ICIgKyBlbnRyeS5nZXRWYWx1ZSgpKTsKCX0KCQoJQFNhZmVWYXJhcmdzCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gcmV2ZXJzZShmaW5hbCBpbnQuLi4gYXJyYXkpIHsKICAgICAgICAgICAgaW50W10gcmV0ID0gbmV3IGludFthcnJheS5sZW5ndGhdOwogICAgICAgICAgICBmb3IgKGludCBpID0gYXJyYXkubGVuZ3RoLTE7IGkgPiAwOyBpLS0pewogICAgICAgICAgICAgICAgcmV0W01hdGguYWJzKDAtaSldID0gYXJyYXlbaV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9CgkKCXByaXZhdGUgc3RhdGljIE1hcDxJbnRlZ2VyLCBGbG9hdD4gZ2V0Q2hhbmNlcyhpbnQgbWluLCBpbnQgbWF4LCBpbnQgY2xvc2UpIHsKICAgICAgICAgICAgaW50IGRpZmZlciA9IG1heCAtIG1pbjsKICAgICAgICAgICAgaWYgKGNsb3NlID4gbWF4IHx8IGNsb3NlIDwgbWluKSB7CiAgICAgICAgICAgICAgICBjbG9zZSA9IGRpZmZlciArIG1pbjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpbnRbXSBudW1iZXJzID0gSW50U3RyZWFtLnJhbmdlQ2xvc2VkKG1pbiwgbWF4KS50b0FycmF5KCk7CiAgICAgICAgICAgIGlmIChudW1iZXJzW251bWJlcnMubGVuZ3RoLTFdID09IGNsb3NlKSB7CiAgICAgICAgICAgICAgICBudW1iZXJzID0gcmV2ZXJzZShudW1iZXJzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBNYXA8SW50ZWdlciwgRmxvYXQ+IGNoYW5jZXMgPSBuZXcgTGlua2VkSGFzaE1hcDw+KCk7CiAgICAgICAgICAgIGNoYW5jZXMucHV0KGNsb3NlLCA1MGYpOwogICAgICAgICAgICBmb3IgKGludCBpID0gbWluOyBpIDw9IG1heDsgaSsrKSB7CiAgICAgICAgICAgIAlmbG9hdCBjaGFuY2UgPSBuZXcgQmlnRGVjaW1hbCg1MGYpLmRpdmlkZShuZXcgQmlnRGVjaW1hbChNYXRoLmFicyhpLWNsb3NlKSoyKSwgQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU4pLnNldFNjYWxlKDIsIGkgPCBjbG9zZSA/IEJpZ0RlY2ltYWwuUk9VTkRfQ0VJTElORyA6IEJpZ0RlY2ltYWwuUk9VTkRfRkxPT1IpLmZsb2F0VmFsdWUoKTsKICAgICAgICAgICAgICAgIGNoYW5jZXMucHV0SWZBYnNlbnQoaSwgY2hhbmNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gY2hhbmNlczsKICAgICAgICB9Cn0=