I didn’t knew that this contest existed! 😀 Well, found it on the front page, looking to be solved, so, let’s go! Its summary:
You receive a credit
C
at a local store and would like to buy two items. You first walk through the store and create a listL
of all available items. From this list you would like to buy two items that add up to the entire value of the credit. The solution you provide will consist of the two integers indicating the positions of the items in your list (smaller number first).
It’s quite simple, and by smaller number first, they mean the position of the items, not its value. From that, the solution is trivial (already validated for the inputs):
for case in range(1,int(raw_input())+1): # For all test cases credit = int(raw_input()) # Get the test's credit raw_input() # Discard the number of items strItems = raw_input().split(" ") # Get the items as strings items = [] for item in strItems: items.append(int(item)) # Convert the items to integers out = False i = 0 j = i+1 for i in range(0,len(items)-1): # first item can be any of the items, but the last for j in range(i+1,len(items)): # the second will be any of the items after the first if items[i] + items[j] == credit: out = True # Found, get out break if out: break print "Case #%d: %d %d" % (case, i+1, j+1)# Reports results
Pretty easy! 😀 See you next post!