HackerRank World Codesprint April: Yet Another KMP Problem Sun, May 1, 2016, competitive writeup hackerrank world-codesprint greedy construct