def six_3():

	# Process input and returns graph dictionary
	G = ip.process_input_6_3()

        # Changing attributes of the graph to maintain different terms used; 
	# Pass boolean value to tell the method if a 'min' value is wanted in the graph
	newG = ip.changeGraphAttributes(G, False, 'ToCapFlow')

	ts1 = datetime.datetime.now()
	resG = FF1.fordfulkersan(newG)
	ts2 = datetime.datetime.now()
	ft.write('\n 6.3 FF :'+ str((ts2 - ts1).microseconds)+ 'ms')
	
	# Modify result graph to 'max' 
	newResG = ip.changeGraphAttributes(resG, False, 'ToMaxMin')

	A, B = mc.create_min_cut_sets(newResG, [], 'S', [])
	
	profit, output = mc.computeProfit_Output(A, B, G)
	
	file_result = open('Result_File_6.3.txt', 'ab')
	file_result.write('\nFF Tasks Chosen and Profit: \n')
	file_result.write('6.3: Tasks Chosen: '+ str(output)+'\n')
	file_result.write('6.3: Total Profit: ' + str(profit)+ '\n')
def assign_task_workers(inputgraph):
	
	# Modify the attributes of the graph from min-max to cap-flow
	ipt = pipt.changeGraphAttributes(inputgraph, True, 'ToCapFlow')

	#Call to FF algorithm
	resultgraph = fordfulkersan(ipt)

	file_result = open('Result_File_6.1.txt', 'ab')
	file_result.write('\nFF Assignments: \n')

	# Print the assignments
        for x in sorted(resultgraph['S']):
                if(x!='tt'):
                       for y in resultgraph[x]:
                                if(y!='tt'):
                                        if resultgraph[x][y]['flow']!=0:
						file_result.write('Task '+x+' --> '+y+'\n')
	file_result.write('FF Assignments\n')
	return resultgraph