# -*- coding: utf-8 -*-
def main():
# 时间集合
time_set = [2, 14, 4, 16, 6, 5, 3]
# 降序排列
time_set.sort()
time_set.reverse()
# 机器
total = [0, 0, 0]
# 数量
total_num = len(total)
total_list = [[] for _ in range(total_num)]
# 贪心
i = 0
for time in time_set:
print('当前分配:', end='\n\t')
for l in range(total_num):
print('第%d个机器:%d' % (l, total[l]), end='\t')
print()
# 找最小时间
min_time = total[0]
k = 0
for j in range(1, total_num):
if min_time > total[j]:
k = j
min_time = total[j]
print('\t将占用时间为%d任务%d,分配给:第%d台机器' % (time_set[i], i, k))
# 分配
total[k] += time
total_list[k].append(i)
i += 1
# 输出
print("时间集合为:")
print(time_set)
print("任务分配情况如下:")
for i in range(total_num):
print('\t第%d个机器:' % i, end='\n\t\t')
for j in total_list[i]:
print('第%d个任务占用时间%d' % (j, time_set[j]), end='\t')
print()
if __name__ == '__main__':
main()