def max_iv(articles_count, pages, ivs, pages_read_limit):
max_iv = 0
n_pages_range = np.arange(len(pages))
for lgth in range(1,len(pages)+1):
reading_options = np.array(list(combinations(n_pages_range, lgth)))
pages_arr = pages[reading_options].sum(axis=-1)
iv_arr = ivs[reading_options].sum(axis=-1)
iv_arr = iv_arr[pages_arr < pages_read_limit]
if iv_arr.size != 0:
curr_iv = iv_arr.max()
if curr_iv > max_iv:
max_iv = curr_iv
return max_iv
ZGVmIG1heF9pdihhcnRpY2xlc19jb3VudCwgcGFnZXMsIGl2cywgcGFnZXNfcmVhZF9saW1pdCk6CiAgICBtYXhfaXYgPSAwCiAgICBuX3BhZ2VzX3JhbmdlID0gbnAuYXJhbmdlKGxlbihwYWdlcykpCiAgICBmb3IgbGd0aCBpbiByYW5nZSgxLGxlbihwYWdlcykrMSk6CgogICAgICAgIHJlYWRpbmdfb3B0aW9ucyA9IG5wLmFycmF5KGxpc3QoY29tYmluYXRpb25zKG5fcGFnZXNfcmFuZ2UsIGxndGgpKSkKICAgICAgICBwYWdlc19hcnIgPSBwYWdlc1tyZWFkaW5nX29wdGlvbnNdLnN1bShheGlzPS0xKQogICAgICAgIGl2X2FyciA9IGl2c1tyZWFkaW5nX29wdGlvbnNdLnN1bShheGlzPS0xKQogICAgICAgIGl2X2FyciA9IGl2X2FycltwYWdlc19hcnIgPCBwYWdlc19yZWFkX2xpbWl0XQoKICAgICAgICBpZiBpdl9hcnIuc2l6ZSAhPSAwOiAgICAgICAgCiAgICAgICAgICAgIGN1cnJfaXYgPSBpdl9hcnIubWF4KCkKICAgICAgICAgICAgaWYgY3Vycl9pdiA+IG1heF9pdjoKICAgICAgICAgICAgICAgIG1heF9pdiA9IGN1cnJfaXYKICAgIHJldHVybiBtYXhfaXY=