# Online Python - IDE, Editor, Compiler, Interpreter
def solution(A, k):
m = {}
res = 0
for i,x in enumerate(A):
if str(x) not in m:
m[str(x)] = {
'have': [i]
}
else:
m[str(x)]['have'].append(i)
for x in m:
m[x]['del'] = missing_elements(m[x]['have'])
if len(m[x]['have']) > res and len(m[x]['del']) <= k:
res = len(m[x]['have'])
return m, res
def missing_elements(L):
start, end = L[0], L[-1]
return sorted(set(range(start, end + 1)).difference(L))
# A = [1,3,2,2,1,1,2]
# A = [1,2,1,2,1]
A = [5,5,5,5,5,5]
# A = [1,2,3,4,5,6]
k = 5
print(f'{solution(A, k)}')
{"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"}