ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

CCF python 201709-2 公共钥匙盒

2020-12-03 20:01:56  阅读:199  来源: 互联网

标签:201709 python len range 钥匙 keybox CCF com append


基本思路:
将所有的时间节点(借钥匙时间,还钥匙时间)组织到一个列表里【钥匙号,时间,借or还】
并将之按时间的升序、还优先借、钥匙号的升序排列

那么所要做的就是遍历这个列表:
····如果是借就
········将要钥匙盒对应的位置置零
····如果是还就
········遍历钥匙盒
············找到第一个零,将之变成钥匙号

# 201709-2 	公共钥匙盒
N, K = map(int, input().split())

keybox = []
com = []
all = []
for i in range(N):
    keybox.append(i + 1)
for i in range(K):
    com.append(list(map(int, input().split())))
    all.append([com[i][0], com[i][1], -1])
    all.append([com[i][0], com[i][1] + com[i][2], 1])

all.sort(key=lambda x: (x[1],-x[2],x[0]))

for i in range(len(all)):
    if all[i][2] == -1:  # borrow
        keybox[keybox.index(all[i][0])] = 0
    elif all[i][2] == 1:  # return
        for j in range(len(keybox)):
            if keybox[j] == 0:
                keybox[j] = all[i][0]
                break
for i in range(len(keybox)):
    print(keybox[i], end=' ')

在这里插入图片描述

标签:201709,python,len,range,钥匙,keybox,CCF,com,append
来源: https://blog.csdn.net/Ln_Jy/article/details/110562747

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有