from sys import stdin,stdout
def filter_data(data):
ranges = ["[0, 0.2)", "[0.2, 0.4)", "[0.4, 0.6)",
"[0.6, 0.8)", "[0.8, 1.0)"]
group = {}
# group the data
for val in data:
idx = ranges[int(val/0.2)]
group.setdefault(idx,{})
group[idx].setdefault("items",[])
group[idx].setdefault("count", 0)
group[idx]["items"].append(val)
group[idx]["count"] += 1
# check if a cartegory doesn't have a value
if len(group.keys()) < len(ranges):
return [None]
# find the minumin number of items in a cartegory
minumum = min(group.values(), key=lambda x:x["count"])["count"]
# create thhe balanced dataset by picking the minumun
# number of items in each cartegory
filtered = []
for k in group.values():
filtered.extend(k['items'][:minumum])
return filtered
#read the data from stdin
data = [float(num.rstrip()) for num in stdin.readlines()[0].split(",")]
filtered_data = filter_data(data)
#output the filtered data
stdout.write(", ".join(map(str,filtered_data)))
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}