php网站插件删除或添加qq怎么分享wordpress
结对编程(200)
- 某部门计划通过结队编程来进行项目开发,部门有N名员工,每个员工有唯一的职级,三个员工为一组,结队分组规则如下:
 - 选出序号为i,j,k的员工,职级分别为level[i], level[j], level[k],满足level[i]<level[j]<level[k] 或者 level[i] > level[j] > level[k] 其中0<i<j<k<n
 - 计算可能组合的小组数量,同一员工可以参加多个小组;
 
输入描述:
 第一行:员工总数n,【1,6000】
 第二行:按序号依次排列的员工的职级,level[i] 在【1,10^5】
 输出描述:
 可能结对的小组数量
示例1
 输入:
 4
 1 2 3 4
 输出:
 4
 说明:
 (1,2,3)(1,2,4) (1,3,4) (2,3,4)
示例2
 输入:
 3
 5 4 7
 输出:
 0
思路:
- 找到满足两个条件的小组; 
- 条件1,0<i<j<k<n;
 - 条件2,level[i]<level[j]<level[k] 或者 level[i] > level[j] > level[k]
 
 - 两组对应相乘
 
 
n = int(input())
nums = [int(x) for x in input().split(" ")]           
compare_count = {}
for i in range(n):compare_count[i]= [0,0,0,0]result = 0
k=1
while(True):if(k>=n):breakelse :for j in range(k):if (nums[j] < nums[k]) : compare_count[k][0] +=1elif (nums[j] > nums[k]) :compare_count[k][1] +=1k+=1for i in range(n-2, 0,-1):for j in range(n-1,i,-1):if (nums[j] < nums[i]) : compare_count[i][2] +=1elif (nums[j] > nums[i]) : compare_count[i][3] +=1for i in range(n):temp = compare_count[i]result +=  temp[0] * temp[3] + temp[1] * temp[2]print(result)
