#!/usr/bin/python2.7 # -*- coding: utf-8 -*- def solveIt(inputData): # Modify this code to run your optimization algorithm # parse the input lines = inputData.split('\n') firstLine = lines[0].split() items = int(firstLine[0]) capacity = int(firstLine[1]) values = [] weights = [] for i in range(1, items+1): line = lines[i] parts = line.split() values.append(int(parts[0])) weights.append(int(parts[1])) items = len(values) # a trivial greedy algorithm for filling the knapsack # it takes items in-order until the knapsack is full value = 0 weight = 0 taken = [] for i in range(0, items): if weight + weights[i] <= capacity: taken.append(1) value += values[i] weight += weights[i] else: taken.append(0) # prepare the solution in the specified output format outputData = str(value) + ' ' + str(0) + '\n' outputData += ' '.join(map(str, taken)) return outputData import sys if __name__ == '__main__': if len(sys.argv) > 1: fileLocation = sys.argv[1].strip() inputDataFile = open(fileLocation, 'r') inputData = ''.join(inputDataFile.readlines()) inputDataFile.close() print solveIt(inputData) else: print 'This test requires an input file. Please select one from the data directory. (i.e. python solver.py ./data/ks_4_0)'