# 不知道能不能过,求题目测试 # 这种做法的时间复杂度应该是O(klgk+kn) import sys def calc_movement(start, end):     global total_num     global position     movement = 0     if end >= total_num:         position.append(total_num + position[0])         position.pop(0)     for idx, num in enumerate(position):         movement += abs(start + idx - num)     return movement if __name__ == "__main__":     line1 = sys.stdin.readline().strip().split()     line2 = sys.stdin.readline().strip().split()     line1 = map(int, line1)     line2 = map(int, line2)     total_num = line1[0]     position = line2     position = sorted(position)     window_size = len(position)     result = sys.maxint     for i in range(total_num):         result = min(result, calc_movement(i, i + window_size-1))     print result
点赞 评论

相关推荐

用微笑面对困难:这里面最强的是驾驶证了,可以入职美团大厂,然后直接开启黄马褂人生
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务